Skip to content
Heist/ feed
Back to feed
Medium

Mailpit: Incomplete SSRF protection in Link Check API via IPv6 transition mechanisms (follow-up to CVE-2026-27808)

Type: advisorySources: OSV

Mailpit is an email testing tool and API for developers. Prior to 1.30.2, the remediation shipped for CVE-2026-27808 is incomplete because the tools.IsInternalIP deny-list in internal/tools/net.go relies on Go's standard library classification helpers and does not block IPv6 transition mechanisms or prefixes such as NAT64, 6to4, IPv4-compatible IPv6, ISATAP, fec0::/10, and 2001:db8::/32. An attacker who can deliver email and invoke POST /api/v1/message/{ID}/link-check can coerce the Link Check API's safeDialContext path into dialing internal destinations and can use status-code and error feedback to map internal service reachability, including cloud metadata endpoints. This issue is fixed in version 1.30.2.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-55187
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 06:13 UTC · Revision 1

Source evidence

Mailpit: Incomplete SSRF protection in Link Check API via IPv6 transition mechanisms (follow-up to CVE-2026-27808)

core-osv · Original source

Published 10 Jul 2026, 21:43 UTC

Mailpit is an email testing tool and API for developers. Prior to 1.30.2, the remediation shipped for CVE-2026-27808 is incomplete because the tools.IsInternalIP deny-list in internal/tools/net.go relies on Go's standard library classification helpers and does not block IPv6 transition mechanisms or prefixes such as NAT64, 6to4, IPv4-compatible IPv6, ISATAP, fec0::/10, and 2001:db8::/32. An attacker who can deliver email and invoke POST /api/v1/message/{ID}/link-check can coerce the Link Check API's safeDialContext path into dialing internal destinations and can use status-code and error feedback to map internal service reachability, including cloud metadata endpoints. This issue is fixed in version 1.30.2.

osv:CVE-2026-55187
Complete source record
{
  "id": "0aa909d56995bda28c205af5da67a1f8556a662240a5ecbdc3305e2a80c8f6a5",
  "url": "https://osv.dev/vulnerability/CVE-2026-55187",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "Mailpit: Incomplete SSRF protection in Link Check API via IPv6 transition mechanisms (follow-up to CVE-2026-27808)",
    "summary": "Mailpit is an email testing tool and API for developers. Prior to 1.30.2, the remediation shipped for CVE-2026-27808 is incomplete because the tools.IsInternalIP deny-list in internal/tools/net.go relies on Go's standard library classification helpers and does not block IPv6 transition mechanisms or prefixes such as NAT64, 6to4, IPv4-compatible IPv6, ISATAP, fec0::/10, and 2001:db8::/32. An attacker who can deliver email and invoke POST /api/v1/message/{ID}/link-check can coerce the Link Check API's safeDialContext path into dialing internal destinations and can use status-code and error feedback to map internal service reachability, including cloud metadata endpoints. This issue is fixed in version 1.30.2.",
    "evidence": "osv:CVE-2026-55187",
    "products": [],
    "severity": "medium",
    "structured": {
      "id": "CVE-2026-55187",
      "aliases": [
        "CVE-2026-55187",
        "GHSA-w4mc-hhc6-xp28",
        "GO-2026-5688"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:L/I:N/A:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/axllent/mailpit",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "0fb1c79f4bf75418e138424f276f48b4aa4f802b"
                },
                {
                  "fixed": "a88dadbbe1df016a35a445089ef2a362a6c2de78"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "1.30.2"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "range": [
                      {
                        "fixed": "a88dadbbe1df016a35a445089ef2a362a6c2de78"
                      }
                    ],
                    "source": "REFERENCES_COMMIT"
                  },
                  {
                    "range": [
                      {
                        "fixed": "0fb1c79f4bf75418e138424f276f48b4aa4f802b"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "v1.30.2"
                  }
                ]
              }
            }
          ],
          "versions": [
            "v1.30.1",
            "v1.30.0",
            "v1.29.7",
            "v1.29.6",
            "v1.29.5",
            "v1.29.4",
            "v1.29.3",
            "v1.29.2",
            "v1.29.1",
            "v1.29.0",
            "v1.28.4",
            "v1.28.3",
            "v1.28.2",
            "v1.28.1",
            "v1.28.0",
            "v1.27.11",
            "v1.27.10",
            "v1.27.9",
            "v1.27.8",
            "v1.27.7",
            "v1.27.6",
            "v1.27.5",
            "v1.27.4",
            "v1.27.3",
            "v1.27.2",
            "v1.27.1",
            "v1.27.0",
            "v1.26.2",
            "v1.26.1",
            "v1.26.0",
            "v1.25.1",
            "v1.25.0",
            "v1.24.2",
            "v1.24.1",
            "v1.24.0",
            "v1.23.2",
            "v1.23.1",
            "v1.23.0",
            "v1.22.3",
            "v1.22.2",
            "v1.22.1",
            "v1.22.0",
            "v1.21.8",
            "v1.21.7",
            "v1.21.6",
            "v1.21.5",
            "v1.21.4",
            "v1.21.3",
            "v1.21.2",
            "v1.21.1",
            "v1.21.0",
            "v1.20.7",
            "v1.20.6",
            "v1.20.5",
            "v1.20.4",
            "v1.20.3",
            "v1.20.2",
            "v1.20.1",
            "v1.20.0",
            "v1.19.3",
            "v1.19.2",
            "v1.19.1",
            "v1.19.0",
            "v1.18.7",
            "v1.18.6",
            "v1.18.5",
            "v1.18.4",
            "v1.18.3",
            "v1.18.2",
            "v1.18.1",
            "v1.18.0",
            "v1.17.1",
            "v1.17.0",
            "v1.16.0",
            "v1.15.1",
            "v1.15.0",
            "v1.14.4",
            "v1.14.3",
            "v1.14.2",
            "v1.14.1",
            "v1.14.0",
            "v1.13.3",
            "v1.13.2",
            "v1.13.1",
            "v1.13.0",
            "v1.12.1",
            "v1.12.0",
            "v1.11.1",
            "v1.11.0",
            "v1.10.4",
            "v1.10.3",
            "v1.10.2",
            "v1.10.1",
            "v1.10.0",
            "v1.9.10",
            "v1.9.9",
            "v1.9.8",
            "v1.9.7",
            "v1.9.6",
            "v1.9.5",
            "v1.9.4",
            "v1.9.3",
            "v1.9.2",
            "v1.9.1",
            "v1.9.0",
            "v1.8.4",
            "v1.8.3",
            "v1.8.2",
            "v1.8.1",
            "v1.8.0",
            "v1.7.1",
            "v1.7.0",
            "v1.6.22",
            "v1.6.21",
            "v1.6.20",
            "v1.6.19",
            "v1.6.18",
            "v1.6.17",
            "v1.6.16",
            "v1.6.15",
            "v1.6.14",
            "v1.6.13",
            "v1.6.12",
            "v1.6.11",
            "v1.6.10",
            "v1.6.9",
            "v1.6.8",
            "v1.6.7",
            "v1.6.6",
            "v1.6.5",
            "v1.6.4",
            "v1.6.3",
            "v1.6.2",
            "v1.6.1",
            "v1.6.0",
            "v1.5.5",
            "v1.5.4",
            "v1.5.3",
            "v1.5.2",
            "v1.5.1",
            "v1.5.0",
            "v1.4.0",
            "v1.3.11",
            "v1.3.10",
            "v1.3.9",
            "v1.3.8",
            "v1.3.7",
            "v1.3.6",
            "v1.3.5",
            "v1.3.4",
            "v1.3.3",
            "v1.3.2",
            "v1.3.1",
            "v1.3.0",
            "v1.2.9",
            "v1.2.8",
            "v1.2.7",
            "v1.2.6",
            "1.2.5",
            "1.2.4",
            "1.2.3",
            "1.2.2",
            "1.2.1",
            "1.2.0",
            "1.1.7"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-55187.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.120170921Z",
      "provider": "osv",
      "references": [
        "https://github.com/axllent/mailpit/releases/tag/v1.30.2",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55187.json",
        "https://github.com/axllent/mailpit/security/advisories/GHSA-w4mc-hhc6-xp28",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-55187",
        "https://github.com/axllent/mailpit/commit/a88dadbbe1df016a35a445089ef2a362a6c2de78"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-918"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/55xxx/CVE-2026-55187.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-55187",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 492976,
  "published_at": "2026-07-10T21:43:59.548+00:00"
}