Repository navigation
Update freetype to 2.15.0 (CVE-2026-50811, CVE-2026-95512) - #919
Merged
Merged
Conversation
2.15.0 (2026-10-12) contains the fix commits for both CVEs. Checked with gh compare on the official mirror: 5a280ecde6f3 (CVE-2026-50811, OOB read in TT_Get_Var_Design) and f3ca71c9900f (CVE-2026-95512, CID loader) are both ancestors of VER-2-15-0, and both are absent from VER-2-14-3. The 2.15.0 CHANGES names CVE-2026-95512. The soname stays libfreetype.so.6 (6.20.6 -> 6.20.7), so the change is ABI-compatible. Tarball sha256 93cd47eb... matches on both download.savannah.gnu.org and downloads.sourceforge.net. It is mirrored to gs://minimal-staging-archives. Refs gominimal/pkgmgr-rs#848 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Contributor
|
Warning Review limit reached
This review includes 1 billable file and costs up to $0.25.
Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing. Or wait 26 minutes for your next included review. View limit details
Comment |
norrietaylor
approved these changes
Oct 19, 2026
Member
There was a problem hiding this comment.
LGTM.
- Both fixes are in 2.15.0 and not in 2.14.3:
5a280ecde6f3(ttgxvar.c, CVE-2026-50811) andf3ca71c9900f(cidload.c, CVE-2026-95512). - The tarball matches
VER-2-15-0, the sha256 matches on both SourceForge and staging, andversion_infoconfirms the ABI-compatible.so.6.20.7. - Both
sedtargets inbuild.shstill exist. - The 50-minute
minimal buildcovered the dependents.
Omitting source_provenance (tracked in pkgmgr-rs#848) is reasonable.
Generated by Claude Code
github-merge-queue
Bot
removed this pull request from the merge queue due to no response for status checks
Oct 19, 2026
This was referenced Oct 26, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this fixes
This PR bumps freetype from 2.14.3 to 2.15.0 (released 2026-10-12). That clears two CVEs the #848 Debian-revision audit found against the version we ship (gominimal/pkgmgr-rs#848):
TT_Get_Var_Design(src/truetype/ttgxvar.c)5a280ecde6f3behind)ahead)f3ca71c9900fThe ancestry columns come from
gh api repos/freetype/freetype/compare/<fix>...<tag>on the official mirror. The 2.15.0docs/CHANGESalso names CVE-2026-95512. Debian fixed both by patching 2.14.3 (2.14.3+dfsg-2,-3). We take the upstream release instead, so we carry no patches.Release notes worth a look
libfreetype.so.6, libtool26:7:20; it was26:6:20before. This is a revision bump, so the ABI is compatible.VARCtable, fonts with more than 65536 glyphs, and the uppercaseMAXP/GLYF/LOCA/… tables. It also changes the TrueType v40 interpreter's ClearType behaviour, and adds an experimental HVF driver (hvf.ois compiled, upstream says it is functional on macOS only). Downstream rendering can change slightly, so the dependents' standalone tests are the real signal here.93cd47eb719c325107f2d3cf087d06299e944c3b48a40b55537302304dea1dd5is identical fromdownload.savannah.gnu.organddownloads.sourceforge.net. It is uploaded togs://minimal-staging-archives/freetype-2.15.0.tar.xz, and the object's MD5 matches. The.sigwas not GPG-verified, because there is no gpg on the host.Verification
All of this ran in a
min sessionwith thepkgbuildloadout, on arm64.min package build --rebuild --verbose freetypeproducedlibfreetype.so.6.20.7and printedbuild finished.min check --packages freetypepasses every check.Provenance is deliberately not added (yet)
freetype still has no
source_provenance. Adding one today would be worse than leaving it out. The two candidates, checked against scmain@bf4dc6dand prodadvisories:'Gitlabgitlab.freedesktop.org/freetype/freetypeis the canonical home, and its purl reaches both CVEs. But the Gitlab arm (scscan.rs:4334-4363) only falls back to the curatedfreetype:freetypeCPE identity when the purl holds zero rows. It holds 20, so we would lose the roughly 95 NVD-CPE advisories. The OSV GIT records it would gain carryVER-X-Y-Ztags and gitlab commit fixes, which the purl path cannot place. They would stay "affected" at every version, including 2.15.0.'GithubRepofreetype/freetypeis the official mirror, and it keeps the curated CPE identity. Butecosystem::git_query_paramshas no freetype arm, so ancestry asks GitHub for av2.15.0tag that doesn't exist (404, inconclusive).normalize_git_tagalso leavesVER-2-14-3unparsed, so the enumerated-versions[]filter fails open. 7 of the 16 matching GIT records have noversions[]at all.The prerequisite is a minimal-supply-chain change: a
"freetype" => VER-{major}-{minor}-{patch}arm ingit_query_params, plusVER-handling innormalize_git_tag. After that,GithubRepo freetype/freetypeis a one-hunk follow-up. This is tracked in pkgmgr-rs#848.Rebuild blast radius
chromiu 8000 m-bin,chromium-headless-shell-bin,ffmpeg,fontconfig,ghostscript,harfbuzz,icedtea-7/8,libass,libgd,pango, and the wholeopenjdk-9…openjdk-25boot-JDK ladder.agent-browser,cairo,graphviz,mermaid-cli,tamarin-prover.Refs gominimal/pkgmgr-rs#848
🤖 Generated with Claude Code