fix(deps): clear four OSV advisories flagged by Scorecard - #665
Conversation
Scorecard's Vulnerabilities check dropped 10 -> 6. Four advisories across three libraries (jackson-databind carries two): GHSA-5gvw-p9qm-jgwh jackson-databind 2.22.0 -> 2.22.1 GHSA-5jmj-h7xm-6q6v jackson-databind 2.22.0 -> 2.22.1 GHSA-pmhh-3w7g-xqp8 jsoup 1.22.2 -> 1.23.1 GHSA-mx76-r943-rf8g bcprov-lts8on 2.73.10 -> 2.73.12 None is reachable from our code, checked against each advisory's precondition: @JSONVIEW is unused; every @JsonIgnoreProperties is class-level ignoreUnknown and case-insensitive deserialization is not enabled; WebScraperTool calls only Jsoup.parse(), never Cleaner/Safelist; the Bouncy Castle defect is a bad-tag exception on decryption under the NATS client. Fixed regardless, because Scorecard counts advisories without regard to reachability. jsoup is direct, so it is a bump. jackson-databind is Quarkus-BOM-managed and follows the jackson-core override already in this POM. bcprov-lts8on needed a pin because io.nats:jnats 2.26.1 still declares 2.73.10, so bumping the parent would not have cleared it. Resolved versions confirmed via dependency:tree; mvnw compile green.
Dependency ReviewThe following issues were found:
License Issuespom.xml
OpenSSF Scorecard
Scanned Files
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (2)
📝 WalkthroughWalkthroughMaven dependency management pins secure Jackson databind and bcprov-lts8on versions and updates jsoup. The changelog documents four OSV advisory remediations, reachability analysis, Jackson version skew, and dependency-tree verification. ChangesDependency vulnerability remediation
Estimated code review effort: 2 (Simple) | ~10 minutes Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
main moved again before this branch was pushed (#664, #665, #667, #668). Conflicts, both in docs: - docs/changelog.md — both sides prepended entries again; kept both, nothing dropped. - docs/secrets-vault.md — #667 documented vault agent grants independently, and #664 changed the default to enforce, which made this branch's "warn (default)" row wrong. Resolved in main's favour: main's section is kept whole and this branch's duplicate dropped, rather than interleaved. Follow-on fixes: the group docs' cross-reference now points at main's anchor and says the thing main's section does not — that a sub-agent inheriting a parent's vault reference must itself be granted the secret, or under the new default it will not deploy. Re-verified after the merge: the "80+ MCP tools" claim in README/docs/AGENTS still holds (84 @tool methods, matching McpToolFilter's whitelist exactly).
OpenSSF Scorecard's
Vulnerabilitiescheck dropped 10 → 6 (4 existing vulnerabilities detected). Four advisories across three libraries — jackson-databind carries two.quarkus-jackson:3.38.1io.nats:jnats:2.26.0None of the four is reachable from our code
Checked against each advisory's stated precondition rather than assumed:
@JsonViewon an@JsonUnwrappedcontainer —@JsonViewappears in zero files undersrc/main/java.@JsonIgnorePropertiesand case-insensitive deserialization. All six usages are class-levelignoreUnknown = truewith no property list, andACCEPT_CASE_INSENSITIVE_PROPERTIESis enabled nowhere — every "case-insensitive" hit in the tree isPattern.CASE_INSENSITIVEor a doc comment.Cleanersanitiser.WebScraperToolis the only jsoup consumer and calls onlyJsoup.parse()— neverCleaner,Safelistorclean().Fixed anyway: Scorecard counts advisories regardless of reachability, and staying current is cheaper than re-litigating reachability every scan. This is score hygiene, not an incident.
Why two of three are
dependencyManagementoverridesjackson-core— which this POM already pins to 2.22.1 for GHSA-r7wm-3cxj-wff9. The new entry follows that established pattern rather than importingjackson-bomahead of the platform BOM, keeping the blast radius small.io.nats:jnats2.26.1 still declares 2.73.10, verified by reading its POM, so bumping the parent would not clear it.Known, pre-existing version skew
databindandcorenow sit at 2.22.1 while the rest of the Jackson family (datatype-*,dataformat-*) stays at 2.22.0 andjackson-annotationsat 2.22. That skew already existed forjackson-corealone; patch differences inside 2.22.x are binary-compatible. Aligning the family viajackson-bomwould be tidier but moves more versions than Quarkus 3.38.1 was tested against — deliberately not done here.Verification
dependency:treere-run after the change confirms all three resolve to the patched versions — not inferred from the POM./mvnw compile→BUILD SUCCESS, no formatter churnLocal
compileis a weak signal for a dependency change;./mvnw verifywith the integration tests in CI is the real gate.Summary by CodeRabbit
Bug Fixes
Documentation