T08 · Insecure Dependencies
- Location
templates/book-report-template.html:7- Finding
External Font Dependency Violates the Self-Contained Report Guarantee
- Content
View full analysis
Vulnerability Details
File Location:
templates/book-report-template.html, line 7
Vulnerability Type: External third-party resource loading
Risk Level: Lowhtml <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=JetBrains+Mono:wght@500;700&display=swap" rel="stylesheet">Technical Analysis
The report template loads a stylesheet from Google Fonts whenever a generated HTML report is opened with network access. This conflicts with the Skill's explicit requirement that generated HTML be self-contained, have no external dependencies, and work offline.
The browser sends a request to
fonts.googleapis.com, and the returned stylesheet can cause additional requests to external font-hosting infrastructure. These requests disclose network and client metadata such as the viewer's IP address, user agent, access time, and potentially referrer information subject to browser policy.The externally hosted stylesheet is also mutable outside the audited project. Although the reviewed code does not load a script or directly execute a remote payload, report appearance and availability depend on third-party content that can change after the package has been reviewed.
Attack Path
- The Skill uses the template to generate a book-report HTML file.
- A user opens the report in a browser while connected to the network.
- The browser requests the external stylesheet from
fonts.googleapis.com. - The response references externally hosted font resources, which the browser may also request.
- External providers receive request metadata, and report rendering becomes dependent on remotely controlled resources.
Impact Assessment
No local privileges, code-execution capability, or system access are obtained through the reviewed markup.
The confirmed scope is limited to:
- Disclosure of the viewer's IP address, user agent, access timing, and related HTTP metadata to external providers.
- Loss of guaran ...[truncated 194 chars]
- Remediation
View remediation
Remediation Suggestions
- Remove the external Google Fonts
<link>element. - Use the system-font fallback stack already present in the template:
css font-family: -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif; - Replace the
JetBrains Monodependency with a local monospace stack:css font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; - If custom fonts are essential, vendor reviewed font files within the project and embed them as data URLs using
@font-face, after confirming licensing and file integrity. - Add an automated check that rejects external resource references such as
http://,https://, protocol-relative URLs, remote@importrules, and remoteurl(...)declarations in generated reports. - Test generated reports with networking disabled to verify that all required styling and content remain available.
- Remove the external Google Fonts
