@@ -13,7 +13,7 @@ Threat model (STRIDE)
1313---------------------
1414
1515The analysis below follows the `STRIDE
16- <https://en.wikipedia.org/wiki/STRIDE_(security) > `_ framework and covers the
16+ <https://en.wikipedia.org/wiki/STRIDE_model > `_ framework and covers the
1717boundary between untrusted image input and the Pillow API.
1818
1919.. code-block :: text
@@ -22,7 +22,7 @@ boundary between untrusted image input and the Pillow API.
2222 Untrusted zone │ Pillow API │
2323 ───────────── │ │
2424 Image files ────►│ Image.open() ──► Format plugins │
25- Byte streams │ (40+ parsers) (Python + C FFI) │
25+ Byte streams │ (40+ parsers) (Python + C FFI) │
2626 User metadata │ │
2727 │ ImageMath.unsafe_eval(expr) ───────────┼──► Python eval()
2828 │ ImageShow.show(image) ─────────────────┼──► os.system / subprocess
@@ -87,11 +87,11 @@ encode-decode cycle invisibly.
8787**T-3 — Supply chain tampering **
8888
8989Pre-compiled wheels bundle libjpeg-turbo, libpng, libtiff, libwebp, openjpeg,
90- freetype, and littlecms2 . A compromised PyPI release or build pipeline could
91- ship malicious binaries.
90+ freetype, littlecms2, and other libraries . A compromised PyPI release or build pipeline
91+ could ship malicious binaries.
9292
93- *Mitigations: * pin with hash verification (`` pip install --require-hashes ``);
94- monitor `Pillow security advisories
93+ *Mitigations: * pin with hash verification
94+ (`` python3 -m pip install --require-hashes ``); monitor `Pillow security advisories
9595<https://github.com/python-pillow/Pillow/security/advisories> `_; use
9696Dependabot or OSV-Scanner for bundled C library CVEs.
9797
0 commit comments