-
Notifications
You must be signed in to change notification settings - Fork 2.8k
feat(julia): enable vulnerability scanning for the Julia language ecosystem #9800
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
This is now working 🎉 $ ./trivy fs --cache-dir ./cache --skip-db-update ~/tmp
2025-11-13T17:04:35Z INFO [vuln] Vulnerability scanning is enabled
2025-11-13T17:04:35Z INFO [secret] Secret scanning is enabled
2025-11-13T17:04:35Z INFO [secret] If your scanning is slow, please try '--scanners vuln' to disable secret scanning
2025-11-13T17:04:35Z INFO [secret] Please see https://trivy.dev/dev/docs/scanner/secret#recommendation for faster secret detection
2025-11-13T17:04:35Z INFO Number of language-specific files num=1
2025-11-13T17:04:35Z INFO [julia] Detecting vulnerabilities...
2025-11-13T17:04:35Z WARN Using severities from other vendors for some vulnerabilities. Read https://trivy.dev/dev/docs/scanner/vulnerability#severity-selection for details.
Report Summary
┌───────────────┬───────┬─────────────────┬─────────┐
│ Target │ Type │ Vulnerabilities │ Secrets │
├───────────────┼───────┼─────────────────┼─────────┤
│ Manifest.toml │ julia │ 2 │ - │
└───────────────┴───────┴─────────────────┴─────────┘
Legend:
- '-': Not scanned
- '0': Clean (no security findings detected)
Manifest.toml (julia)
Total: 2 (UNKNOWN: 1, LOW: 0, MEDIUM: 1, HIGH: 0, CRITICAL: 0)
┌─────────────┬────────────────┬──────────┬────────┬───────────────────┬───────────────┬──────────────────────────────────────────────────────────────┐
│ Library │ Vulnerability │ Severity │ Status │ Installed Version │ Fixed Version │ Title │
├─────────────┼────────────────┼──────────┼────────┼───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ HTTP │ CVE-2025-61689 │ UNKNOWN │ fixed │ 1.10.17 │ 1.10.19 │ Header injection/Response splitting via header construction. │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-61689 │
├─────────────┼────────────────┼──────────┤ ├───────────────────┼───────────────┼──────────────────────────────────────────────────────────────┤
│ MbedTLS_jll │ CVE-2025-27810 │ MEDIUM │ │ 2.28.6+0 │ 2.28.10+0 │ Mbed TLS before 2.28.10 and 3.x before 3.6.3, in some cases │
│ │ │ │ │ │ │ of... │
│ │ │ │ │ │ │ https://avd.aquasec.com/nvd/cve-2025-27810 │
└─────────────┴────────────────┴──────────┴────────┴───────────────────┴───────────────┴──────────────────────────────────────────────────────────────┘ |
DmitriyLewen
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
@mbauman Thanks for this - excellent with Julia vuln. support in Trivy! I gave a build of this PR a spin with just a Manifest.toml and was surprised that the Project.toml is also required? |
|
Yeah, Julia itself doesn't really do anything with just a bare Manifest. In fact, when you load such an environment, Julia reports an "empty Project" and you are unable to import any of the packages in the Manifest. You can take an extra step to The moment you have Julia do any work with packages, you'll always have the pair of both files. |
| log.Warn("Julia is supported for SBOM, not for vulnerability scanning") | ||
| return Driver{}, false | ||
| eco = ecosystem.Julia | ||
| comparer = compare.GenericComparer{} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Similar to other package managers, the Julia package manager respects semantic versioning (semver)
https://pkgdocs.julialang.org/v1/compatibility/
Does the Julia package versioning not follow semver? In the examples, versions such as 1.6 or 0.5 are specified, which are not allowed under semver.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Those are compat specifiers. The version numbers themselves are definitively semver syntax, and the Package manager applies semver's semantics to its upgrade/resolution behaviors. The compat specifiers are a more complicated version range syntax that allows folks to concisely describe ranges of real semver versions.
Yeah, I know. Just hit this when I lazily provided only the And wondered whether the Edit: But this might also be unrelated to this PR. |
knqyf263
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
|
Thanks @mbauman for your perfect work! |
|
Thank you for getting it in! It's exciting to get this support here. |
Description
This is the final step in supporting Julia vulnerability scanning (#9071). It requires the related PRs to first be merged.
Before
After
Related issues
The discussion in #9071 has not been converted into an issue.
Related PRs
This depends upon:
Remove this section if you don't have related PRs.
Checklist