rantoniuk opened a new issue, #6853:
URL: https://github.com/apache/jmeter/issues/6853

   ### Use case
   
   JMeter 5.6.3 was released in January 2024 and is still the latest release. 
Many of us run JMeter in environments where security scanners gate what is 
allowed in production or in CI, and 5.6.3 now fails those gates. The 6.0.0 
milestone is moving forward (thanks for all the work on it!), but it raises the 
baseline to Java 17 and carries larger behaviour changes, so even after it 
ships a lot of users will need some time to migrate.
   
   This issue tries to collect in one place what a 5.x maintenance release 
would need, so it can be discussed and tracked. Related threads:
   
   - #6766 Expected timeline for new JMeter release
   - #6424 Security Vulnerability Roadmap Inquiry
   - #6714 Security Update: Address high/critical CVEs in dependencies
   - #6653 Log4j issue CVE-2025-68161 in JMeter 5.6.3
   - #6701 fix(deps): backport security fixes to 5.6.x (open, last updated 
2026-07-10)
   - dev@ thread "Dependency updates for 5.6.x branch" (2026-05-24)
   
   ### Needs
   
   #### 1. Security (dependency CVEs)
   
   #6701 already does the heavy lifting on `release/5.6.x`: xstream, 
json-smart, json-path, jackson, log4j, batik, dnsjava, commons-lang3, 
neo4j-java-driver (shaded netty, see #6714), and dropping `tika-parsers` from 
the runtime classpath. Its description also documents the accepted, 
not-reachable `tika-core` CVE-2025-66516 and the unpatched jackson 
GHSA-5jmj-h7xm-6q6v.
   
   What seems to be missing is review, CI on the full matrix and a release 
vote. Downstream users can help with smoke runs against their own plans (see 
"How we can help" below).
   
   #### 2. Unmaintained dependencies
   
   Some shipped jars are not affected by known CVEs today, but they are 
unmaintained, so nobody will fix them if a CVE turns up. They also get flagged 
by licence and supply-chain policies (for example, `oro` declares no licence in 
its POM):
   
   | Jar | Status | Fix on master | Notes for 5.x |
   |---|---|---|---|
   | `xmlpull:xmlpull:1.1.3.1`, `io.github.x-stream:mxparser` | xmlpull 
unmaintained since ~2006 | 920fa60dc "chore: replace xmlpull with Woodstox" | 
Needs #6767 (fix for #6761) before it is safe in any release |
   | `oro:oro:2.0.8` | Apache Attic | #6661 switches the default regex engine 
to the JDK (open) | `HTTPArgument`/`EncoderCache` still uses 
`org.apache.oro.util.CacheLRU`, so the jar cannot be dropped yet even after 
#6661 |
   
   #### 3. Java compatibility
   
   The 5.x line keeps Java 8 as a hard rule (per #6701). I checked the bytecode 
level of the jars the xmlpull replacement would add:
   
   | Artifact | Class file major | Java 8 OK? |
   |---|---|---|
   | `com.fasterxml.woodstox:woodstox-core:7.1.0` | 52 | yes |
   | `org.codehaus.woodstox:stax2-api:4.2.2` | 50 | yes |
   | `org.glassfish.jaxb:txw2:4.0.6` (used for `IndentingXMLStreamWriter`) | 55 
| **no** |
   | `org.glassfish.jaxb:txw2:2.3.9` (same `com.sun.xml.txw2` package) | 52 | 
yes |
   
   The Kotlin and Java changes in 920fa60dc look Java 8 compatible to me (5.6.x 
already builds Kotlin), so a backport looks possible with `txw2` 2.3.9 instead 
of 4.0.6. I have not built it, so please treat this as a starting point, not a 
verified result.
   
   ### Possible solution
   
   Two options, depending on how much maintainer time is available:
   
   **A. 5.6.4: security only (smallest step)**
   - Merge #6701 as is and release it from `release/5.6.x`.
   - No behaviour changes, no new or removed jars apart from `tika-parsers`.
   
   **B. 5.7: A plus selected low-risk modernisation**
   - Everything in A.
   - Backport 920fa60dc (xmlpull/mxparser to Woodstox) with `txw2` 2.3.9, 
**only after** #6767 is merged on master and passes the #6761 attachments and 
5.6.3 legacy files.
   - Optionally backport #6661 (JDK regex as default, ORO opt-in).
   - Release notes must call out user-visible changes:
     - `xmlpull` and `mxparser` removed from `lib/`, so plugins that call `new 
XStream()` or use `XppDriver` need to bundle them
     - JMX/JTL serialization differences: empty elements written as `<x/>`, 
empty values omitted, header written by the StAX writer
     - StAX factory is fixed to Woodstox
   
   If B is too much for now, A alone would already unblock most of the people 
in #6424, #6714 and #6766.
   
   ### Possible workarounds
   
   - Replacing jars in `lib/` by hand (as suggested in #6653). This works for 
single libraries, but it is hard to do for transitive or shaded ones, and it is 
not something most organisations can sign off.
   - Nightly builds. These are not acceptable in many regulated environments, 
and they include the open 6.0 regressions (for example #6761).
   
   ### How we can help
   
   We use JMeter 5.6.3 through jmeter-java-dsl in a CI performance suite and 
can:
   - run our suite against a `release/5.6.x` build or a release candidate and 
report results here or on dev@
   - test a 5.7 backport of the Woodstox change against our JTL/JMX files
   
   ### JMeter Version
   
   5.6.3
   
   ### Java Version
   
   Not specific to one version; the point is that the 5.x line keeps working on 
Java 8
   
   ### OS Version
   
   Any
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to