Skip to content

Security: weekly scanning, PR vulnerability gate, dependency patch - #25

Merged
valandi merged 5 commits into
mainfrom
security-checks
Jul 27, 2026
Merged

Security: weekly scanning, PR vulnerability gate, dependency patch#25
valandi merged 5 commits into
mainfrom
security-checks

Conversation

@valandi

@valandi valandi commented Jul 27, 2026

Copy link
Copy Markdown
Collaborator

Implements docs/superpowers/specs/2026-07-27-security-scanning-design.md:

  • Weekly Dependabot bump PRs (maven + github-actions), grouped, majors held back for pdfbox/jetty/slf4j/junit
  • security.yml: PR gate (dependency-review + OSV diff scan + Trivy, CRITICAL/HIGH fixable) and weekly Monday audit (full scans, SARIF to Security tab, includes the checked-in libs/EyesUtilities jar)
  • Existing workflows SHA-pinned with least-privilege permissions
  • Backlog patch: jackson 2.22.1, commons-io 2.22.0, pdfbox 2.0.37, opencsv 5.12.0, jetty 11.0.26, slf4j 1.7.36, jbig2-imageio 3.0.5
  • Fixes latent classpath shadowing: jackson must be declared before EyesUtilities (that jar embeds a partial unrelocated jackson-core 2.16.1 fragment); NOTE comment in pom.xml guards the ordering

🤖 Generated with Claude Code

valandi and others added 5 commits July 27, 2026 16:53
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
pdfbox 2.0.29->2.0.37, commons-io 2.11.0->2.22.0, jbig2-imageio
3.0.4->3.0.5, opencsv 5.8->5.12.0, jetty 11.0.20->11.0.26,
slf4j-simple 1.7.32->1.7.36. All within current majors; jetty 12 /
pdfbox 3 migrations are deliberate follow-ups.

jackson-core / jackson-dataformat-csv left at 2.13.4 (not bumped):
bumping either to 2.22.1 broke BatchMapDeserializerTest with
NoSuchMethodError on ParserMinimalBase.<init>(int,
StreamReadConstraints). Applied the documented contingency (drop
both to 2.19.4) and reran -- same 4 errors. Root-caused: EyesUtilities-1.6.6.jar
bundles an unrelocated, partial jackson-core 2.16.1
(com/fasterxml/jackson/core/base/ParserMinimalBase.class only) that
shadows the real dependency on the classpath. Any jackson-core
>= 2.15 introduces classes (e.g. UTF8StreamJsonParser) that call a
ParserMinimalBase constructor overload absent from that embedded
2.16.1 fragment, so the mismatch is unavoidable via version choice
alone -- confirmed by isolating: reverting only the jackson pair
back to 2.13.4 with the other six bumps in place fully restores the
suite (487 tests, 0 failures/errors, 1 pre-existing unrelated skip).
Fixing this needs either a rebuilt EyesUtilities without the
embedded jackson-core, or a pom exclusion of that transitive class,
both out of scope for a version-only patch. Follow-up needed to
close out the jackson-core / jackson-databind CVEs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…n order

jackson-core / jackson-dataformat-csv (2.13.4->2.22.1) previously failed
BatchMapDeserializerTest with NoSuchMethodError on
ParserMinimalBase.<init>(int, StreamReadConstraints) -- root cause was
EyesUtilities-1.6.6.jar embedding an unrelocated, partial jackson-core
2.16.1 fragment (ParserMinimalBase.class only) under the real
com.fasterxml.jackson.core package. Maven/JVM classpath resolution is
first-declared-wins for same-named classes, and EyesUtilities was
declared before jackson-core/jackson-dataformat-csv in <dependencies>,
so its stale embedded class shadowed the real, newer jackson-core
whenever other jackson-core classes (e.g. UTF8StreamJsonParser) called
the newer constructor.

Moving both jackson dependency blocks above EyesUtilities makes the
coherent, newer jackson-core win on the classpath (and in the shaded
uber jar, for the same first-artifact-wins reason). Verified: full
suite passes clean at 2.22.1 with this reordering (487 tests, 0
failures, 0 errors, 1 pre-existing unrelated skip) -- closing out the
jackson exception noted in the prior commit.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@github-advanced-security

Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

@valandi
valandi merged commit 0056dbf into main Jul 27, 2026
13 checks passed
@valandi
valandi deleted the security-checks branch July 27, 2026 21:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants