https://github.com/TryGhost/Ghost.git ·
lang: javascript ·
LOC: ·
source: user_submitted
| Rule | Severity | Count |
|---|---|---|
AIC003 Duplicated implementation block across source files |
low | 23 |
DKR001 Docker final stage has no non-root USER |
medium | 4 |
SEC027 XML External Entity (XXE) — Node.js xml parsers |
high | 3 |
SEC029 Server-Side Request Forgery (SSRF) — outbound HTTP from use… |
high | 3 |
WEB012 Service worker is present without a web app manifest |
medium | 1 |
AUC001 [AUC001] No Repobility access matrix policy found: The repo… |
medium | 1 |
AIC005 Duplicate top-level symbol appears in a patch-style file |
low | 1 |
SEC015 Insecure Randomness for Security |
medium | 1 |
SEC006 XSS Risk |
high | 1 |
ERR002 [ERR002] Empty Catch Block: Empty catch blocks hide errors. |
medium | 1 |
SEC006
XSS Risk
ghost/admin/app/components/gh-html-iframe.js:23
· conf 1.00
[SEC006] XSS Risk: Direct HTML injection without sanitization.
SEC013
Path Traversal — User Input in File Path
apps/activitypub/src/views/inbox/components/inbox-list.tsx:42
· conf 0.80
[SEC013] Path Traversal — User Input in File Path: User-controlled input used in file path without sanitization. Allows reading arbitrary files.
SEC027
XML External Entity (XXE) — Node.js xml parsers
apps/admin-x-design-system/src/global/form/html-editor.tsx:28
· conf 1.00
[SEC027] XML External Entity (XXE) — Node.js xml parsers: Node.js XML parsers can expand external entities if not configured. libxmljs in particular has had XXE CVEs.
SEC027
XML External Entity (XXE) — Node.js xml parsers
apps/admin-x-settings/src/components/settings/membership/member-emails/use-welcome-email-preview.ts:33
· conf 1.00
[SEC027] XML External Entity (XXE) — Node.js xml parsers: Node.js XML parsers can expand external entities if not configured. libxmljs in particular has had XXE CVEs.
SEC027
XML External Entity (XXE) — Node.js xml parsers
apps/admin-x-settings/src/components/settings/site/announcement-bar/announcement-bar-preview.tsx:49
· conf 1.00
[SEC027] XML External Entity (XXE) — Node.js xml parsers: Node.js XML parsers can expand external entities if not configured. libxmljs in particular has had XXE CVEs.
SEC029
Server-Side Request Forgery (SSRF) — outbound HTTP from user input
apps/activitypub/src/api/activitypub.ts:533
· conf 1.00
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.25…
SEC029
Server-Side Request Forgery (SSRF) — outbound HTTP from user input
apps/activitypub/src/components/global/ap-avatar.tsx:101
· conf 1.00
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.25…
SEC029
Server-Side Request Forgery (SSRF) — outbound HTTP from user input
apps/activitypub/src/components/modals/new-note-modal.tsx:175
· conf 1.00
[SEC029] Server-Side Request Forgery (SSRF) — outbound HTTP from user input: Outbound HTTP request to a user-controlled URL without allowlist validation. Attackers can probe internal services (169.25…
SEC033
Prototype Pollution — unfiltered merge of user object
ghost/core/core/frontend/services/data/fetch-data.js:50
· conf 1.00
[SEC033] Prototype Pollution — unfiltered merge of user object: Merging user-controlled object into a target without filtering `__proto__`/`constructor`/`prototype` keys lets attackers inject propert…
AUC001
[AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
· conf 0.92
[AUC001] No Repobility access matrix policy found: The repository uses web/API frameworks but does not define .repobility/access.yml or equivalent authorization documentation.
DKR001
Docker final stage has no non-root USER
docker/dev-gateway/Dockerfile:1
· conf 0.82
Docker final stage has no non-root USER
DKR001
Docker final stage has no non-root USER
docker/ghost-dev/Dockerfile:6
· conf 0.82
Docker final stage has no non-root USER
DKR001
Docker final stage has no non-root USER
docker/tb-cli/Dockerfile:1
· conf 0.82
Docker final stage has no non-root USER
DKR001
Docker final stage has no non-root USER
e2e/Dockerfile.e2e:12
· conf 0.82
Docker final stage has no non-root USER
DKR014
Dockerfile copies the entire context without .dockerignore
Dockerfile.production:28
· conf 0.76
Dockerfile copies broad context with incomplete .dockerignore
DKR017
Dockerfile installs dependencies after copying the full source tree
Dockerfile.production:32
· conf 0.90
Dockerfile installs dependencies after copying the full source tree
ERR002
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
ghost/admin/app/components/gh-billing-iframe.js:131
· conf 1.00
[ERR002] Empty Catch Block: Empty catch blocks hide errors.
SEC015
Insecure Randomness for Security
apps/shade/src/components/patterns/filters.tsx:2694
· conf 1.00
[SEC015] Insecure Randomness for Security: Weak PRNG used in security-sensitive context. Output is predictable.
WEB003
Public web service has no security.txt
.well-known/security.txt
· conf 0.78
Public web service has no security.txt
WEB012
Service worker is present without a web app manifest
manifest.json
· conf 0.72
Service worker is present without a web app manifest
WEB015
Public web app has no Content Security Policy
index.html
· conf 0.70
Public web app has no Content Security Policy
AIC002
Source file name looks like an AI patch artifact
apps/admin/src/whats-new/hooks/use-whats-new.ts:1
· conf 0.62
Source file name looks like an AI patch artifact
AIC003
Duplicated implementation block across source files
apps/activitypub/src/components/global/ap-avatar.tsx:69
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/utils/posts.ts:18
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/explore/explore.tsx:27
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/inbox/components/inbox-list.tsx:41
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/inbox/components/reader.tsx:396
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/notifications/notifications.tsx:143
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/notifications/notifications.tsx:187
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/preferences/components/edit-profile.tsx:89
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/profile/components/actor-list.tsx:32
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/profile/components/actor-list.tsx:34
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/profile/components/likes.tsx:25
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/profile/components/posts.tsx:22
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/profile/components/posts.tsx:27
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/activitypub/src/views/profile/components/profile-page.tsx:90
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/admin-x-design-system/src/global/modal/preview-modal.tsx:98
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/admin-x-framework/src/vite.ts:65
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/admin-x-framework/vite.config.ts:33
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/admin-x-settings/src/components/settings/advanced/integrations/transistor-modal.tsx:61
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/admin-x-settings/src/components/settings/advanced/integrations/unsplash-modal.tsx:23
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/admin-x-settings/src/components/settings/advanced/integrations/zapier-modal.tsx:45
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/admin-x-settings/src/components/settings/advanced/migration-tools/universal-import-modal.tsx:28
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/admin-x-settings/src/components/settings/email-design/design-fields/heading-font-field.tsx:14
· conf 0.86
Duplicated implementation block across source files
AIC003
Duplicated implementation block across source files
apps/admin-x-settings/src/components/settings/email-design/design-fields/link-color-field.tsx:5
· conf 0.86
Duplicated implementation block across source files
AIC005
Duplicate top-level symbol appears in a patch-style file
ghost/admin/app/components/gh-post-settings-menu/option-or-alt.js:1
· conf 0.64
Duplicate top-level symbol appears in a patch-style file
DKR008
.dockerignore misses sensitive defaults
.dockerignore
· conf 0.72
.dockerignore misses sensitive defaults
DKR011
Dockerfile installs recommended OS packages
docker/ghost-dev/Dockerfile:9
· conf 0.72
Dockerfile installs recommended OS packages
WEB001
Public web app has no robots.txt
robots.txt
· conf 0.74
Public web app has no robots.txt
WEB002
Public web app has no sitemap
sitemap.xml
· conf 0.72
Public web app has no sitemap
WEB008
Public docs site has no llms.txt
llms.txt
· conf 0.64
Public docs site has no llms.txt
WEB011
Public web app has no humans.txt
humans.txt
· conf 0.50
Public web app has no humans.txt
Reading from rp.scan + rp.finding + rp.rule (unified schema, R78 series). Legacy data path unchanged. Compare with /scan/bffeb7cd-b7a6-4529-900f-44c7ae84f8f1/.