Skip to content

fix(security): 2 improvements across 2 files#1843

Open
tomaioo wants to merge 2 commits intolinuxfoundation:mainfrom
tomaioo:fix/security/unvalidated-external-url-used-for-naviga
Open

fix(security): 2 improvements across 2 files#1843
tomaioo wants to merge 2 commits intolinuxfoundation:mainfrom
tomaioo:fix/security/unvalidated-external-url-used-for-naviga

Conversation

@tomaioo
Copy link
Copy Markdown

@tomaioo tomaioo commented Apr 15, 2026

Summary

fix(security): 2 improvements across 2 files

Problem

Severity: Medium | File: frontend/app/components/modules/project/components/community/card-displays/default-card.vue:L8

The component binds mention.url directly into a link target (:to="mention.url") for a clickable card. If mention.url is sourced from external/untrusted data, an attacker could supply a malicious URL (e.g., javascript:... or a deceptive phishing URL), leading to script execution on click in some contexts or user redirection to attacker-controlled sites.

Solution

Validate and normalize URLs before binding. Allow only http: and https: protocols via a helper (e.g., new URL(url) + protocol allowlist), and fallback to #/disabled state for invalid values. Consider centralizing this in a safeExternalUrl() utility used by all community-card link renderers.

Changes

  • frontend/app/components/modules/project/components/community/card-displays/default-card.vue (modified)
  • frontend/.storybook/preview-head.html (modified)

tomaioo added 2 commits April 15, 2026 05:26
- Security: Unvalidated external URL used for navigation (possible `javascript:` URL XSS/phishing)
- Security: Third-party script loaded from CDN without Subresource Integrity (SRI)

Signed-off-by: tomaioo <203048277+tomaioo@users.noreply.github.com>
- Security: Unvalidated external URL used for navigation (possible `javascript:` URL XSS/phishing)
- Security: Third-party script loaded from CDN without Subresource Integrity (SRI)

Signed-off-by: tomaioo <203048277+tomaioo@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant