GIVE YOUR AGENT THE EVIDENCE

Set up in your agent.

One prompt to get started. Paste it into your coding agent to connect cve.new through MCP and bring vulnerability context into your workflow.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

GIVE YOUR AGENT THE EVIDENCE

Investigate in your agent.

Turn this advisory into a focused investigation. Ask your agent to check your project’s versions, explain the evidence, and suggest a compatible fix.

Your agent needs remote MCP support and access to https://cve.new/mcp.

Read the setup guide

GHSA-fqvv-jvhr-g5jccritical9.9

FireFighter has unauthenticated SSRF in its Raid jira_bot endpoint that allows IAM credential theft

Check your stack

The advisory, in context

Impact

The POST /api/v2/firefighter/raid/jira_bot endpoint (CreateJiraBotView) is reachable without authentication (permission_classes = [permissions.AllowAny]). Its attachments payload is fetched server-side via httpx.get() with no URL validation, then uploaded as an attachment on the Jira ticket that gets created.

An unauthenticated caller able to reach the ingress can coerce the pod into fetching arbitrary URLs — including the cloud metadata endpoint at http://169.254.169.254/ — and exfiltrate the response as a Jira attachment.

On EC2/EKS deployments that do not enforce IMDSv2, this allows theft of the temporary AWS credentials attached to the pod's IAM role. The docstring on the view claims a Bearer token is required, but the code does not enforce it.

Affected code paths:

  • src/firefighter/raid/views/__init__.py — CreateJiraBotView
  • src/firefighter/raid/serializers.py — LandbotIssueRequestSerializer.attachments
  • src/firefighter/raid/client.py — RaidJiraClient.add_attachments_to_issue

Patches

Fixed in firefighter-incident 0.0.54:

  • CreateJiraBotView now enforces BearerTokenAuthentication + IsAuthenticated.
  • attachments URLs are validated: http(s) scheme only, max 10 URLs, rejection of any host resolving to a private, loopback, link-local, reserved, multicast or unspecified IP (IPv4 and IPv6).
  • Fixes an unrelated KeyError('attachments') surfaced during regression testing.

Users should upgrade to 0.0.54 or later.

Workarounds

Until upgrade is possible, any one of the following blocks end-to-end exploitation:

  • Restrict ingress access to /api/v2/firefighter/raid/jira_bot to trusted networks only (VPN, internal load balancer).
  • Rotate or revoke the Jira API token configured as RAID_JIRA_API_PASSWORD; this breaks jira.create_issue() before the vulnerable attachment fetch is reached (legitimate traffic is also blocked — emergency mitigation only).
  • Enforce IMDSv2 with HttpPutResponseHopLimit=1 on EC2/EKS nodes. This does not fix the SSRF itself but neutralises the IAM-credential-theft path.

Resources

  • CWE-918: Server-Side Request Forgery
  • CWE-306: Missing Authentication for Critical Function

Affected packages

Start with the recorded fix for your release branch. Check your installed version and test compatibility before upgrading. Fixing this advisory does not rule out other vulnerabilities in the release.

Ecosystem versions

Earlier releases before 0.0.54

Fixed in 0.0.54

55 explicitly affected versions

0.0.1, 0.0.10, 0.0.11, 0.0.12, 0.0.13, 0.0.14, 0.0.15, 0.0.16, 0.0.17, 0.0.18, 0.0.19, 0.0.1rc1, 0.0.1rc2, 0.0.2, 0.0.20, 0.0.21, 0.0.22, 0.0.23, 0.0.24, 0.0.25, 0.0.26, 0.0.27, 0.0.28, 0.0.29, 0.0.3, 0.0.30, 0.0.31, 0.0.32, 0.0.33, 0.0.34, 0.0.35, 0.0.36, 0.0.37, 0.0.38, 0.0.39, 0.0.4, 0.0.40, 0.0.41, 0.0.42, 0.0.43, 0.0.44, 0.0.45, 0.0.46, 0.0.47, 0.0.48, 0.0.49, 0.0.5, 0.0.50, 0.0.51, 0.0.52, 0.0.53, 0.0.6, 0.0.7, 0.0.8, 0.0.9

View affected-version evidence
{
  "ranges": [
    {
      "events": [
        {
          "introduced": "0"
        },
        {
          "fixed": "0.0.54"
        }
      ],
      "type": "ECOSYSTEM"
    }
  ],
  "versions": [
    "0.0.1",
    "0.0.10",
    "0.0.11",
    "0.0.12",
    "0.0.13",
    "0.0.14",
    "0.0.15",
    "0.0.16",
    "0.0.17",
    "0.0.18",
    "0.0.19",
    "0.0.1rc1",
    "0.0.1rc2",
    "0.0.2",
    "0.0.20",
    "0.0.21",
    "0.0.22",
    "0.0.23",
    "0.0.24",
    "0.0.25",
    "0.0.26",
    "0.0.27",
    "0.0.28",
    "0.0.29",
    "0.0.3",
    "0.0.30",
    "0.0.31",
    "0.0.32",
    "0.0.33",
    "0.0.34",
    "0.0.35",
    "0.0.36",
    "0.0.37",
    "0.0.38",
    "0.0.39",
    "0.0.4",
    "0.0.40",
    "0.0.41",
    "0.0.42",
    "0.0.43",
    "0.0.44",
    "0.0.45",
    "0.0.46",
    "0.0.47",
    "0.0.48",
    "0.0.49",
    "0.0.5",
    "0.0.50",
    "0.0.51",
    "0.0.52",
    "0.0.53",
    "0.0.6",
    "0.0.7",
    "0.0.8",
    "0.0.9"
  ]
}

References