T08 · Insecure Dependencies
- Location
references/latex-template.md:48- Finding
Unpinned and Unverified Third-Party Font Archive Installation
- Content
View full analysis
Vulnerability Details
File Location:
references/latex-template.md, lines 48-52
Vulnerability Type: Supply-chain risk from an unpinned and unverified external dependency
Risk Level: Mediumbash curl -L -o /tmp/MapleMono.zip "https://github.com/subframe7536/maple-font/releases/latest/download/MapleMono.zip" mkdir -p ~/.local/share/fonts unzip -o /tmp/MapleMono.zip -d ~/.local/share/fonts/MapleMono fc-cache -fv rm /tmp/MapleMono.zipTechnical Analysis
The installation procedure downloads a mutable
latestrelease archive from a third-party personal GitHub repository. It does not pin a reviewed version or verify a cryptographic checksum or signature before installing the archive's contents.Although the downloaded archive is not directly executed as a program, its externally controlled contents are extracted into the user's persistent font directory and subsequently processed by
fc-cacheand font-handling components. The-ooption also permits existing files in the destination to be overwritten without prompting. No validation restricts extracted content to expected font formats or checks archive paths before extraction.The behavior is not necessary for the Skill's core resume-generation functionality. The project already specifies
DejaVu Sans Monoas a Linux fallback, so generating and compiling a resume does not require retrieving this dependency.Attack Path
- An attacker compromises the upstream repository, maintainer account, release process, or downloadable release asset.
- The attacker replaces the asset addressed by the mutable
latest/download/MapleMono.zipURL with a malicious or malformed archive. - A user grants the installation permission requested by the Skill.
- The Skill downloads the changed archive without checking a pinned version, checksum, or signature.
- The archive's contents are extracted into
~/.local/share/fonts/MapleMono, overwriting matching fil ...[truncated 1106 chars]
- Remediation
View remediation
Remediation Suggestions
- Prefer the already documented OS-provided fallback font and remove automatic third-party font installation from the normal workflow.
- If Maple Mono installation remains available, pin an explicitly reviewed release version and immutable asset URL instead of following
latest. - Publish and verify an expected SHA-256 digest before extraction. Abort installation if verification fails.
- Where upstream signing is available, verify the release signature against a pinned, trusted maintainer key.
- Download into a private temporary directory created with
mktemp -drather than using a predictable shared/tmp/MapleMono.zippath. - List and inspect archive entries before extraction. Reject absolute paths, parent-directory traversal components, symbolic links, and unexpected file types.
- Extract into an isolated temporary directory first, then copy only expected
.ttfor.otffiles into the destination. - Avoid unconditional overwrite behavior. Remove
unzip -oor explicitly verify destination files before replacing them. - Retain the requirement for informed user approval and clearly identify the third-party source, pinned version, expected digest, and files that will be installed.
