security(maven): 🛡️ minor 🛡️ vulnerability [unknown]#62
Open
renovate[bot] wants to merge 1 commit intomainfrom
Open
security(maven): 🛡️ minor 🛡️ vulnerability [unknown]#62renovate[bot] wants to merge 1 commit intomainfrom
renovate[bot] wants to merge 1 commit intomainfrom
Conversation
Contributor
⛔ Snyk checks have failed. 2 issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
auto-merge was automatically disabled
February 27, 2026 21:57
Pull request was closed
95e06ab to
08cf2fc
Compare
08cf2fc to
4a97b20
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
7.10.0→7.22.06.0.23→6.1.02.15.0→2.18.6GitHub Vulnerability Alerts
CVE-2026-28338
Summary
PMD's
vbhtmlandyahtmlreport formats insert rule violation messages into HTML output without escaping. When PMD analyzes untrusted source code containing crafted string literals, the generated HTML report contains executable JavaScript that runs when opened in a browser.While the default
htmlformat is not affected via rule violation messages (it correctly usesStringEscapeUtils.escapeHtml4()), it has a similar problem when rendering suppressed violations. The user supplied message (the reason for the suppression) was not escaped.Details
VBHTMLRenderer.javaline 71 appendsrv.getDescription()directly into HTML:YAHTMLRenderer.javalines 196–203 does the same viarenderViolationRow():Called at line 172:
The violation message originates from
AvoidDuplicateLiteralsRule.javaline 91, which embeds raw string literal values viafirst.toPrintableString(). This callsStringUtil.escapeJava()(line 476–480), which is a Java source escaper — it passes<,>, and&through unchanged because they are printable ASCII (0x20–0x7e).By contrast,
HTMLRenderer.javaline 143 properly escapes:PoC
vbhtmlformat:report.htmlin a browser. A JavaScript alert executes showingdocument.domain.The generated HTML contains the unescaped tag:
Tested and confirmed on PMD 7.22.0-SNAPSHOT (commit bcc646c53d).
Impact
Stored cross-site scripting (XSS). Affects CI/CD pipelines that run PMD with
--format vbhtmlor--format yahtmlon untrusted source code (e.g., pull requests from external contributors) and expose the HTML report as a build artifact. JavaScript executes in the browser context of anyone who opens the report.Practical impact is limited because
vbhtmlandyahtmlare legacy formats rarely used in practice. The defaulthtmlformat has a similar issue with user messages from suppressed violations.Fixes
PMD Designer has Stored XSS in VBHTMLRenderer and YAHTMLRenderer via unescaped violation messages
CVE-2026-28338 / GHSA-8rr6-2qw5-pc7r
More information
Details
Summary
PMD's
vbhtmlandyahtmlreport formats insert rule violation messages into HTML output without escaping. When PMD analyzes untrusted source code containing crafted string literals, the generated HTML report contains executable JavaScript that runs when opened in a browser.While the default
htmlformat is not affected via rule violation messages (it correctly usesStringEscapeUtils.escapeHtml4()), it has a similar problem when rendering suppressed violations. The user supplied message (the reason for the suppression) was not escaped.Details
VBHTMLRenderer.javaline 71 appendsrv.getDescription()directly into HTML:YAHTMLRenderer.javalines 196–203 does the same viarenderViolationRow():Called at line 172:
The violation message originates from
AvoidDuplicateLiteralsRule.javaline 91, which embeds raw string literal values viafirst.toPrintableString(). This callsStringUtil.escapeJava()(line 476–480), which is a Java source escaper — it passes<,>, and&through unchanged because they are printable ASCII (0x20–0x7e).By contrast,
HTMLRenderer.javaline 143 properly escapes:PoC
vbhtmlformat:report.htmlin a browser. A JavaScript alert executes showingdocument.domain.The generated HTML contains the unescaped tag:
Tested and confirmed on PMD 7.22.0-SNAPSHOT (commit bcc646c53d).
Impact
Stored cross-site scripting (XSS). Affects CI/CD pipelines that run PMD with
--format vbhtmlor--format yahtmlon untrusted source code (e.g., pull requests from external contributors) and expose the HTML report as a build artifact. JavaScript executes in the browser context of anyone who opens the report.Practical impact is limited because
vbhtmlandyahtmlare legacy formats rarely used in practice. The defaulthtmlformat has a similar issue with user messages from suppressed violations.Fixes
Severity
CVSS:3.1/AV:N/AC:H/PR:N/UI:R/S:U/C:H/I:H/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Spring Framework vulnerable to a reflected file download (RFD)
CVE-2025-41234 / GHSA-6r3c-xf4w-jxjm
More information
Details
Description
In Spring Framework, versions 6.0.x as of 6.0.5, versions 6.1.x and 6.2.x, an application is vulnerable to a reflected file download (RFD) attack when it sets a “Content-Disposition” header with a non-ASCII charset, where the filename attribute is derived from user-supplied input.
Specifically, an application is vulnerable when all the following are true:
org.springframework.http.ContentDisposition.ContentDisposition.Builder#filename(String, Charset).An application is not vulnerable if any of the following is true:
org.springframework.http.ContentDisposition.ContentDisposition.Builder#filename(String), orContentDisposition.Builder#filename(String, ASCII)Affected Spring Products and VersionsSpring Framework
Mitigation
Users of affected versions should upgrade to the corresponding fixed version.
No further mitigation steps are necessary.
Severity
CVSS:3.1/AV:N/AC:H/PR:L/UI:R/S:C/C:H/I:L/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Spring Framework DataBinder Case Sensitive Match Exception
CVE-2024-38820 / GHSA-4gc7-5j7h-4qph
More information
Details
The fix for CVE-2022-22968 made disallowedFields patterns in DataBinder case insensitive. However, String.toLowerCase() has some Locale dependent exceptions that could potentially result in fields not protected as expected.
Severity
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
GHSA-72hv-8253-57qq
Summary
The non-blocking (async) JSON parser in
jackson-corebypasses themaxNumberLengthconstraint (default: 1000 characters) defined inStreamReadConstraints. This allows an attacker to send JSON with arbitrarily long numbers through the async parser API, leading to excessive memory allocation and potential CPU exhaustion, resulting in a Denial of Service (DoS).The standard synchronous parser correctly enforces this limit, but the async parser fails to do so, creating an inconsistent enforcement policy.
Details
The root cause is that the async parsing path in
NonBlockingUtf8JsonParserBase(and related classes) does not call the methods responsible for number length validation._finishNumberIntegralPart) accumulate digits into theTextBufferwithout any length checks._valueComplete(), which finalizes the token but does not callresetInt()orresetFloat().resetInt()/resetFloat()methods inParserBaseare where thevalidateIntegerLength()andvalidateFPLength()checks are performed.maxNumberLengthconstraint is never enforced in the async code path.PoC
The following JUnit 5 test demonstrates the vulnerability. It shows that the async parser accepts a 5,000-digit number, whereas the limit should be 1,000.
Impact
A malicious actor can send a JSON document with an arbitrarily long number to an application using the async parser (e.g., in a Spring WebFlux or other reactive application). This can cause:
TextBufferto store the number's digits, leading to anOutOfMemoryError.getBigIntegerValue()orgetDecimalValue(), the JVM can be tied up in O(n^2)BigIntegerparsing operations, leading to a CPU-based DoS.Suggested Remediation
The async parsing path should be updated to respect the
maxNumberLengthconstraint. The simplest fix appears to ensure that_valueComplete()or a similar method in the async path calls the appropriate validation methods (resetInt()orresetFloat()) already present inParserBase, mirroring the behavior of the synchronous parsers.NOTE: This research was performed in collaboration with rohan-repos
jackson-core: Number Length Constraint Bypass in Async Parser Leads to Potential DoS Condition
GHSA-72hv-8253-57qq
More information
Details
Summary
The non-blocking (async) JSON parser in
jackson-corebypasses themaxNumberLengthconstraint (default: 1000 characters) defined inStreamReadConstraints. This allows an attacker to send JSON with arbitrarily long numbers through the async parser API, leading to excessive memory allocation and potential CPU exhaustion, resulting in a Denial of Service (DoS).The standard synchronous parser correctly enforces this limit, but the async parser fails to do so, creating an inconsistent enforcement policy.
Details
The root cause is that the async parsing path in
NonBlockingUtf8JsonParserBase(and related classes) does not call the methods responsible for number length validation._finishNumberIntegralPart) accumulate digits into theTextBufferwithout any length checks._valueComplete(), which finalizes the token but does not callresetInt()orresetFloat().resetInt()/resetFloat()methods inParserBaseare where thevalidateIntegerLength()andvalidateFPLength()checks are performed.maxNumberLengthconstraint is never enforced in the async code path.PoC
The following JUnit 5 test demonstrates the vulnerability. It shows that the async parser accepts a 5,000-digit number, whereas the limit should be 1,000.
Impact
A malicious actor can send a JSON document with an arbitrarily long number to an application using the async parser (e.g., in a Spring WebFlux or other reactive application). This can cause:
TextBufferto store the number's digits, leading to anOutOfMemoryError.getBigIntegerValue()orgetDecimalValue(), the JVM can be tied up in O(n^2)BigIntegerparsing operations, leading to a CPU-based DoS.Suggested Remediation
The async parsing path should be updated to respect the
maxNumberLengthconstraint. The simplest fix appears to ensure that_valueComplete()or a similar method in the async path calls the appropriate validation methods (resetInt()orresetFloat()) already present inParserBase, mirroring the behavior of the synchronous parsers.NOTE: This research was performed in collaboration with rohan-repos
Severity
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by OSV and the GitHub Advisory Database (CC-BY 4.0).
Release Notes
spring-projects/spring-framework (org.springframework:spring-web)
v6.1.0⭐ New Features
JdbcClient.update(KeyHolder)does not work without explicit key column names #31607@EmbeddableInstantiatorsregistered on JPA embeddables for reflection #31534ControlFlowPointcut#31435🐞 Bug Fixes
@EnableJpaAuditingusing Spring Boot 3.2-RC2 in native image #31575RestClientbut passes withWebTestClient#31574ExecutorLifecycleDelegateshould callExecutorService.isTerminated()in?.isRunning()#31549RestTemplatePOST to endpoint using Digest Auth no longer works in 6.1 #31516nullindexed argument value #31508📔 Documentation
@Sqlscripts and statements #31589@[Enabled|Disabled]InNativeImagein reference manual #31438@DisabledInAotModein the reference manual #31437@Sqlclass-level execution phase support in the reference manual #31377🔨 Dependency Upgrades
❤️ Contributors
Thank you to all the contributors who worked on this release:
@Young-Zen, @duesenklipper, @izeye, @k-seth, and @wakingrufus
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Enabled.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.