Commit 6de545c
Dependency vulnerability sweep + Spring Boot 3.5.16: tomcat, netty, log4j BOM fix, jackson, postgresql, lz4, commons-compress (#485)
* Pin tomcat-embed 10.1.57 and netty 4.1.136.Final for active CVEs
Spring Boot 3.5.15 (and 3.5.16) still manage tomcat 10.1.55 and netty
4.1.135.Final, both of which have unfixed CVEs, so re-add temporary
dependencyManagement overrides.
Tomcat 10.1.55 -> 10.1.57 covers CVE-2026-55956 (Moderate, default servlet
security constraints ignored the configured method) plus CVE-2026-59084,
CVE-2026-59083, CVE-2026-55955, CVE-2026-55276, CVE-2026-53434,
CVE-2026-53404 and CVE-2026-50229 (Low). All three embed artifacts
(core, el, websocket) are pinned together so the Tomcat version stays
internally consistent rather than mixing 10.1.57 core with 10.1.55 el.
Netty 4.1.135.Final -> 4.1.136.Final covers the 20 CVEs in that release
across netty-codec-http/http2/stomp/haproxy/xml/redis/dns/compression and
netty-handler-ssl-ocsp (memory exhaustion, CR/LF injection, zip bomb, OCSP
certificate validation). Kept on the 4.1.x line that Boot and reactor-netty
are tested against rather than moving to 4.2.x.
The existing commons-lang3 / commons-configuration2 / commons-fileupload
overrides were re-audited against the Boot BOM and all three are still
required (the BOM manages commons-lang3 at 3.17.0 and does not manage the
other two).
Verified with mvn dependency:tree that all tomcat-embed artifacts resolve
to 10.1.57 and all io.netty artifacts to 4.1.136.Final; full reactor
clean install passes.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* Fix ineffective log4j BOM import and patch 6 more CVE-affected deps
Full-tree OSV scan of all 374 resolved artifact/version pairs turned up 9
vulnerable pairs beyond the tomcat/netty ones. This fixes 6 of them.
log4j was the significant find. The log4j-bom import sat BELOW the
spring-boot-dependencies import, and Maven resolves dependencyManagement
first-declaration-wins, so Boot's log4j2.version (2.24.3) silently won and
${log4j.version} had no effect whatsoever - the repo has been building
against 2.24.3 while the property claimed 2.25.4. Moving the import above
spring-boot-dependencies makes the property live again; the version is also
bumped 2.25.4 -> 2.25.5. This clears CVE-2026-34480, CVE-2026-34478,
CVE-2026-34477, CVE-2025-68161 (log4j-core) and CVE-2026-34479
(log4j-1.2-api). A comment now records the ordering constraint.
New temporary vulnerability overrides:
- jackson-bom 2.21.4 -> 2.21.5 for CVE-2026-59889, CVE-2026-54515 and
GHSA-mhm7-754m-9p8w (@JSONVIEW / @JsonIgnoreProperties deserialization
bypasses). Imported above spring-boot-dependencies for the same
first-wins reason.
- postgresql 42.7.11 -> 42.7.13 for CVE-2026-54291 (High), a silent
channel-binding authentication downgrade.
- lz4-java 1.10.1 -> 1.11.1 for CVE-2026-59949; pulled in by kafka-clients
3.9.2 via spring-kafka, which Boot manages but lz4 is not.
- commons-compress -> 1.28.0 for CVE-2024-26308 and CVE-2024-25710. Only
the test-scoped testcontainers path was on the vulnerable 1.24.0 while
spring-boot-loader-tools already pulled 1.27.1, so this also removes a
version split.
Spring Boot 3.5.16 was evaluated and deliberately not taken: it manages
identical versions of log4j2, jackson, postgresql, kafka and hibernate to
3.5.15, so it would not have fixed any of the above.
Two findings are deliberately NOT fixed here because they need migrations
rather than version pins, and are called out in the PR for separate work:
hibernate-core 5.6.15.Final (CVE-2026-0603, High) dragged in by the
Hibernate 5-only hibernate-ehcache / hibernate-entitymanager artifacts, and
querydsl 5.1.0 (CVE-2024-49203, High) whose upstream is abandoned in favour
of the io.github.openfeign.querydsl fork.
Re-scan after the change: 9 vulnerable pairs down to 3 (the 2 above plus
querydsl-apt). Full reactor clean install passes, 1700 tests green.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
* Bump Spring Boot to 3.5.16 to stay current on the patch line
Policy bump rather than a targeted CVE fix: staying on the newest Boot
patch means we are not waiting on an upgrade when the next advisory lands.
3.5.15 -> 3.5.16 moves spring-amqp 3.2.11 -> 3.2.12, spring-data-bom
2025.0.12 -> 2025.0.13 and spring-integration 6.5.9 -> 6.5.10. Those are
the only three managed versions that changed; a full property diff of the
two BOMs confirms everything else is identical, including
spring-framework (6.2.19 in both).
Spring Cloud stays at 2025.0.3 - it is already the newest patch in the
2025.0.x train that pairs with Boot 3.5.x, and crossing to 2025.1.x would
mean a different Boot line. Spring Framework / spring-core is not a
separate knob in this repo: the four modules that declare spring-core do so
without a version, so it moves with the Boot BOM automatically.
None of the temporary vulnerability overrides become redundant - 3.5.16
still manages log4j2 2.24.3, jackson 2.21.4, postgresql 42.7.11, tomcat
10.1.55, netty 4.1.135.Final and commons-lang3 3.17.0, so every pin in the
block is still doing work.
OSV re-scan of the resolved tree is unchanged at 3 vulnerable pairs, full
reactor clean install passes with 1700 tests green.
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>1 parent 610046e commit 6de545c
1 file changed
Lines changed: 95 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
66 | 66 | | |
67 | 67 | | |
68 | 68 | | |
69 | | - | |
| 69 | + | |
70 | 70 | | |
71 | 71 | | |
72 | 72 | | |
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
89 | | - | |
| 89 | + | |
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| |||
625 | 625 | | |
626 | 626 | | |
627 | 627 | | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
| 648 | + | |
| 649 | + | |
| 650 | + | |
| 651 | + | |
| 652 | + | |
| 653 | + | |
| 654 | + | |
| 655 | + | |
| 656 | + | |
| 657 | + | |
| 658 | + | |
| 659 | + | |
| 660 | + | |
| 661 | + | |
| 662 | + | |
| 663 | + | |
628 | 664 | | |
629 | 665 | | |
630 | 666 | | |
| |||
649 | 685 | | |
650 | 686 | | |
651 | 687 | | |
| 688 | + | |
| 689 | + | |
| 690 | + | |
| 691 | + | |
| 692 | + | |
| 693 | + | |
| 694 | + | |
| 695 | + | |
| 696 | + | |
| 697 | + | |
| 698 | + | |
| 699 | + | |
| 700 | + | |
| 701 | + | |
| 702 | + | |
| 703 | + | |
| 704 | + | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
| 708 | + | |
| 709 | + | |
| 710 | + | |
| 711 | + | |
| 712 | + | |
| 713 | + | |
| 714 | + | |
| 715 | + | |
| 716 | + | |
| 717 | + | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
652 | 732 | | |
653 | 733 | | |
654 | 734 | | |
| |||
663 | 743 | | |
664 | 744 | | |
665 | 745 | | |
| 746 | + | |
| 747 | + | |
| 748 | + | |
| 749 | + | |
| 750 | + | |
| 751 | + | |
| 752 | + | |
| 753 | + | |
| 754 | + | |
| 755 | + | |
| 756 | + | |
| 757 | + | |
| 758 | + | |
666 | 759 | | |
667 | 760 | | |
668 | 761 | | |
| |||
703 | 796 | | |
704 | 797 | | |
705 | 798 | | |
706 | | - | |
707 | | - | |
708 | | - | |
709 | | - | |
710 | | - | |
711 | | - | |
712 | | - | |
713 | 799 | | |
714 | 800 | | |
715 | 801 | | |
| |||
0 commit comments