2.6 KiB
2.6 KiB
Dependency and supply-chain evidence
Captured: 2026-08-02
Advisory checks
- NuGet: no known vulnerable direct or transitive package was reported.
- npm: two affected package entries (
react-routerandreact-router-dom) cover four moderate advisories. One narrow redirect issue is fixed in 6.30.4; the remaining audit-suggested resolution is React Router 7.18.2, a breaking major upgrade. No upgrade was attempted. - Python:
pip-auditreturned 119 records across six installed packages; after deduplicating repeated aliases, the affected counts weretransformers21,torch22,pillow17,pypdf35,python-multipart6, and transitivestarlette7.
Reachability matters:
pypdfdirectly parses authenticated user PDF uploads and multiple advisories describe infinite loops, excessive CPU, or memory exhaustion from crafted PDFs.- Pillow directly opens authenticated image uploads; advisories include decompression bombs and memory-corruption cases. Extension routing is not a content-signature check.
python-multipart/Starlette parse the sidecar upload before the endpoint's eight-megabyte post-read check; several advisories are request-parsing denial of service.- Many
torch/transformersadvisories concern model or checkpoint loading. The application loads a fixed configured model, not a user-supplied model, so those records are not all treated as directly exploitable.
Existing mitigations: authenticated backend upload path, private backend-only AI network, required production service token, eight-megabyte application limit, accepted-extension list, and no host-published sidecar port. Residual risk: containers have no resource limits and the parser handles untrusted bytes in-process.
Reproducibility and provenance
- npm has
package-lock.jsonand usesnpm ci. - NuGet has no lockfile; the repository has no
global.json, so local builds selected SDK 10 while the project targets .NET 9. - Python top-level requirements are exact pins, but transitive dependencies are not hash-locked.
- Docker base images use mutable tags rather than digests.
- Gitea Actions use mutable major tags for checkout/setup-node, an unpinned remote
dotnet-install.sh, and a tagged SSH action rather than immutable commit SHAs. - The AI image upgrades pip/setuptools/wheel during build and downloads the configured Hugging Face model at runtime unless already cached.
- No SBOM generation, package licence gate, container CVE scan, or signed-provenance check is configured.
dotnet list ... --deprecated marked xUnit 2.9.2 and its transitive xUnit 2 packages as legacy. This is maintenance information, not a current security defect.