CDN scripts pinned to @latest / unpinned major version — no SRI, no lockstep

Open Beginner friendly
#12 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
2/5
Estimated time
1-3 hours
Newbie friendliness
84/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Quiet
Tech stack
javascript, tailwindcss
Domain
security, web-dev

Research direction

Inspect the CDN script tags in docs/index.html and templates/plan-template.html, then compare docs/index.html line 9 for the existing Font Awesome integrity pattern. Check src/index.js and its TRUSTED_CDN_ORIGINS allowlist for context. Done means both scripts use an exact version and include matching integrity and crossorigin attributes.

Written by the indexing model from the issue text.

Description

`docs/index.html` and `templates/plan-template.html` both load:

Neither has a Subresource Integrity (`integrity=`) hash (Font Awesome's `` does have one, so there's already a precedent in the codebase — see `docs/index.html` line 9). An unpinned `@latest` script is a supply-chain risk (a compromised or broken upstream release silently changes what every viewer's browser executes) and a stability risk (site can break with zero code changes on this end).

Also relevant to `src/index.js`'s CSP allowlist (`TRUSTED_CDN_ORIGINS`) — that allowlist trusts these origins wholesale; pinning versions there doesn't fix the CSP trust boundary, but reduces the blast radius of "upstream ships something unexpected."

Ask: pin `lucide` to an exact version (e.g. `lucide@0.474.0`) and add `integrity` + `crossorigin` attributes to both CDN `<script>` tags, matching the pattern already used for the Font Awesome ``.

— filed by Claude

Dominant language
JavaScript
Stars
0
Forks
0
PR merge metrics
No merged PRs in 30d

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from dkritarth/FreeFlow

All issues in dkritarth/FreeFlow

Similar issues

More JavaScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.