kaos-source v0.1.5

License: Apache-2.0 Runtime: Python 3.13+ Released: 2026-09-23 Repository

Changes since last sweep

No signal changes detected since 2026-11-06.

Trust scorecard

Composite: 8/9 green
Build passing
Latest CI conclusion: success
Tests: PR + compat + min-deps
PR lanes: success; compat: success; min-deps: success
Security scans + dependency advisories
security-light: success; security-full: failure; 44 open advisories (OSV.dev): 6 critical, 23 high, 15 moderate
Updates merged promptly
2 open PR(s), 2 from Dependabot; oldest 11 day(s) old
Signed release artifacts
PEP 740 attestation verified for 2/2 artifacts
License clean
Wheel license: Apache-2.0
SBOM published
SBOM published — 59 components
Branch protection
GitHub reports main as protected; admin-only rule details were not available to the sweep token
SECURITY.md + CODEOWNERS
SECURITY.md + CODEOWNERS present

CI matrix

Environment pytestruff tybandit pip-audit
linux-x64 / py3.14
linux-x64 / py3.14t
linux-x64 / py3.15
macos-arm64 / py3.13
windows-x64 / py3.13

Security

Open advisories
44 across 59 locked dependencies (OSV.dev)
Maintenance notices
0
Fixed in 90d
not tracked
Open Dependabot PRs
2
Suppressions (total)
not inspected (sibling clone absent)
AdvisoryPackageSeveritySummary
GHSA-332p-7hrc-92wf pillow 12.3.0 critical Pillow: Heap buffer overflow in _tiffWriteProc when saving TIFF to BytesIO
GHSA-5x8w-8jj5-q52h pillow 12.3.0 critical Pillow: Heap buffer overflow in FlashPix (FPX) JPEG decoding leads to code execution
GHSA-6q48-6c7w-9gw2 certifi 2026.4.22 critical certifi bundles emSign root CAs with compromised intermediate CA keys
GHSA-8g5g-8vmr-9782 pillow 12.3.0 critical Pillow: Heap buffer overflow in ImagingJpegDecode
GHSA-v9pv-5gc8-w2m6 pillow 12.3.0 critical Pillow multi-frame loaders can reuse stale native image storage after mode transitions
GHSA-w889-685w-c8fh pillow 12.3.0 critical Pillow: Argument Injection in Ghostscript call, potentially leading into RCE
GHSA-22hg-r758-rrw9 pillow 12.3.0 high Pillow: Infinite loop in MIC n_frames when the embedded TIFF
GHSA-27h8-gf7j-v5hc pillow 12.3.0 high Pillow: NULL dereference in ImagingExpand via rank filters on zero-size images
GHSA-3j72-p6qg-6xp7 pillow 12.3.0 high Pillow: TarIO negative size field causes infinite CPU-spin loop
GHSA-58r4-6rv3-gfh8 pillow 12.3.0 high Pillow: Out-of-bounds access in _imagingmorph on a zero-width image
GHSA-5xm2-6676-qcp9 pillow 12.3.0 high Pillow: APNG background disposal allocates full canvas before decompression bomb check
GHSA-65qm-jvmh-6pqg pillow 12.3.0 high Pillow: GIF seek keeps rejected size after DecompressionBombError, allowing DoS
GHSA-78g4-xqwv-q3g8 pillow 12.3.0 high Pillow: Bundled libopenjp2 2.5.4 in all wheels since 11.1.0 carries OSV-2025-219 heap-buffer-overflow write reachable from Image.open().load()
GHSA-7mwm-ghpf-9vrm pillow 12.3.0 high Pillow: Double free in ImagingScaleAffine on calloc failure via Image.transform
GHSA-9v9v-9qvf-h2hj pillow 12.3.0 high Pillow: Heap over-read in WMF/EMF rendering via 16-bit dimension truncation (Windows builds)
GHSA-c6hw-5grf-ff96 pillow 12.3.0 high Pillow: OOB read in TiffDecode.c tile and RGBA paths leaks heap memory into pixels
GHSA-cp9v-662q-vvx9 pillow 12.3.0 high Pillow: NULL pointer dereference in Image.merge via an unvalidated band 0
GHSA-f2g6-542v-9j58 pillow 12.3.0 high Pillow: Infinite loop in PdfParser.rewrite_pages on page tree Parent cycle
GHSA-g4qv-2jxx-769h pillow 12.3.0 high Pillow: PNG eXIf chunk makes EXIF parsing run in quadratic time
GHSA-g7cr-3p24-7wf7 pillow 12.3.0 high Pillow: Heap buffer overflow writing JPEG comment after ICC profile fills buffer
GHSA-g842-9rc4-69pw pillow 12.3.0 high Pillow: Decompression bomb check bypass in SpiderImagePlugin.seek() leads to unbounded allocation DoS
GHSA-gg2r-wvfm-q9rx pillow 12.3.0 high Pillow: MSP RLE decoder expands a tiny file into unbounded memory
GHSA-j4m9-6w36-pw47 pillow 12.3.0 high Pillow: Invalid free in FreeType glyph rendering when a stroker is active
GHSA-jg86-v3jv-hrpm pillow 12.3.0 high Pillow: Quadratic-time DoS in PDF save_all (PdfParser.next_object_id)
GHSA-mrfp-p49p-3hf2 pillow 12.3.0 high Pillow PDF append accepts malformed shared page-tree DAG causing resource exhaustion
GHSA-p4wg-p73j-c528 pillow 12.3.0 high Pillow: Unbounded recursion parsing a PDF page tree or trailer chain (incomplete fix for CVE-2026-42310)
GHSA-pchr-8j38-3x4p pillow 12.3.0 high Pillow: TIFF encoder ColorMap plane-size mismatch causes a heap out-of-bounds read
GHSA-q45j-58j2-45rg pillow 12.3.0 high Pillow: TiffDecode returns uninitialized memory as pixels for short JPEG strips
GHSA-xvh5-g6gv-559v pillow 12.3.0 high Pillow: Memory disclosure and segfault in libtiff encoder via crafted TIFF tags
GHSA-24rc-8hj2-v98c pillow 12.3.0 moderate Pillow: BMP RLE decoder memory-amplification DoS via unbounded delta escape / absolute mode
GHSA-254f-3936-288h pillow 12.3.0 moderate Pillow: PdfParser can recurse without limit in get_value() and linearize_page_tree()
GHSA-42vr-xj54-vc7v pyjwt 2.14.0 moderate PyJWT: Unauthenticated RecursionError DoS in pre-verification payload parse (PyJWKClient.get_signing_key_from_jwt / verify_signature=False)
GHSA-4558-3h8r-v8xp pillow 12.3.0 moderate Pillow: P;2L and P;4L decoders may read 1 to 3 bytes past the passed buffer size
GHSA-462x-pgg6-55fp pillow 12.3.0 moderate Pillow tiled-TIFF decoder reads past tile buffer in copy4 (Unpack.c:1290)
GHSA-4rm8-3hmm-39fg pillow 12.3.0 moderate Pillow: Reachable undefined behavior in native integer operations, potentially leading to denial of service or logic integrity compromise
GHSA-4rr5-89j8-mwwm pillow 12.3.0 moderate Pillow: Heap use-after-free when encoding TIFF to an in-memory buffer
GHSA-654x-cwwv-5j9c pillow 12.3.0 moderate Pillow: Arrow export leaks stale heap memory when PILLOW_ALIGNMENT > 1
GHSA-74r2-7ff9-mjj2 pillow 12.3.0 moderate Pillow: Quadratic GIF comment concatenation allows DoS in Image.open()
GHSA-fc9g-5qg7-mf45 pillow 12.3.0 moderate Pillow: Quadratic GIF comment copying during save
GHSA-p8hx-v2p6-rp84 pillow 12.3.0 moderate Pillow: Decompression-bomb protection bypass via multi-frame seek() in MPO and DCX (MpoImageFile.seek / DcxImageFile.seek)
GHSA-rfgq-q3w2-pmv2 pillow 12.3.0 moderate Pillow: Image.quantize() with empty palette leaks uninitialized stack memory
GHSA-vx6w-vv9f-6gvg pillow 12.3.0 moderate Pillow: EPS load(scale) lets Ghostscript render past the decompression bomb limit
GHSA-x33g-cr3x-6449 pyjwt 2.14.0 moderate PyJWT accepts inconsistent OKP x/d JWKs, causing public/private key identity confusion
GHSA-xgh8-jp6q-p5x8 pillow 12.3.0 moderate Pillow: ReDoS in XbmImagePlugin: 512-byte file stalls Image.open() for minutes

Suppressions are markers that silence a linter, type-checker, or security scanner. See security.html for the full ledger across the org.

Supply chain

Direct deps
—
Transitive deps
—
SBOM
CycloneDX (mirror) · CycloneDX (GitHub Release)

Governance + velocity

Maintainers
2
Commits 90d
4
Releases 90d
1

Code surface area

Python source (LoC)
9,910 across 93 files
Python tests (LoC)
6,419 across 34 files
Rust source (LoC)
—
Rust tests (LoC)
—
Source lines of code
16,329 LoC

Counts non-blank, non-comment lines (sloc). Excludes .venv, target, dist, build, __pycache__, _site, and lockfiles (uv.lock, Cargo.lock). Tests are paths whose ancestors contain tests, test, or benches. Authorship: this codebase is AI-assisted — lines were generated with Claude (Anthropic) and human-reviewed before commit. We count what's in git; we do not claim humans typed every character.

Evidence

Download JSON

Methodology

How these eight checks are scored Each check is collected by an automated workflow against public sources only (GitHub API, OSV, Sigstore transparency log, package registry metadata). No self-attestation is accepted. A check is green when the underlying signal is present and meets a documented threshold, yellow when partial, red when failing, and gray when the collector has not yet implemented the probe. See methodology.html for thresholds and source URLs.