---
id: CVE-2025-0938
title: >-
  The Python standard library functions `urllib.parse.urlsplit` and `urlparse`
  accepted domain names that included square brackets which isn't valid
  according to RFC 3986
summary: >-
  The Python standard library functions `urllib.parse.urlsplit` and `urlparse`
  accepted domain names that included square brackets which isn't valid
  according to RFC 3986. Square brackets are only meant to be used as delimiters
  for specify…
severity: none
cwe:
  - CWE-20
published: '2025-01-31'
updated: '2026-07-30'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2025-0938'
references:
  - url: >-
      https://github.com/python/cpython/commit/526617ed68cde460236c973e5d0a8bad4de896ba
    label: cna@python.org
  - url: >-
      https://github.com/python/cpython/commit/90e526ae67b172ed7c6c56e7edad36263b0f9403
    label: cna@python.org
  - url: >-
      https://github.com/python/cpython/commit/a7084f6075c9595ba60119ce8c62f1496f50c568
    label: cna@python.org
  - url: >-
      https://github.com/python/cpython/commit/b8b4b713c5f8ec0958c7ef8d29d6711889bc94ab
    label: cna@python.org
  - url: >-
      https://github.com/python/cpython/commit/d89a5f6a6e65511a5f6e0618c4c30a7aa5aba56a
    label: cna@python.org
  - url: >-
      https://github.com/python/cpython/commit/ff4e5c25666f63544071a6b075ae8b25c98b7a32
    label: cna@python.org
  - url: 'https://github.com/python/cpython/issues/105704'
    label: cna@python.org
  - url: 'https://github.com/python/cpython/pull/129418'
    label: cna@python.org
  - url: >-
      https://mail.python.org/archives/list/security-announce@python.org/thread/K4EUG6EKV6JYFIC24BASYOZS4M5XOQIB/
    label: cna@python.org
  - url: 'https://lists.debian.org/debian-lts-announce/2025/03/msg00013.html'
    label: af854a3a-2127-422b-91ae-364da2661108
  - url: 'https://security.netapp.com/advisory/ntap-20250314-0002/'
    label: af854a3a-2127-422b-91ae-364da2661108
tags:
  - nvd
epss: 0.01556
epssPercentile: 0.74116
ingestedAt: '2026-07-30T23:56:34.245Z'
---

## Overview

The Python standard library functions `urllib.parse.urlsplit` and `urlparse` accepted domain names that included square brackets which isn't valid according to RFC 3986. Square brackets are only meant to be used as delimiters for specifying IPv6 and IPvFuture hosts in URLs. This could result in differential parsing across the Python URL parser and other specification-compliant URL parsers.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
