Skip to content

Bump idna from 2.6 to 3.15#18

Merged
JonathanPorta merged 1 commit into
masterfrom
dependabot/pip/idna-3.15
Jul 7, 2026
Merged

Bump idna from 2.6 to 3.15#18
JonathanPorta merged 1 commit into
masterfrom
dependabot/pip/idna-3.15

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Jul 7, 2026

Copy link
Copy Markdown
Contributor

Bumps idna from 2.6 to 3.15.

Release notes

Sourced from idna's releases.

v3.15

No release notes provided.

v3.14

No release notes provided.

v3.13

No release notes provided.

v3.12

No release notes provided.

v3.11

No release notes provided.

v3.10

No release notes provided.

v3.9

No release notes provided.

v3.8

What's Changed

  • Fix regression where IDNAError exception was not being produced for certain inputs.
  • Add support for Python 3.13, drop support for Python 3.5 as it is no longer testable.
  • Documentation improvements
  • Updates to package testing using Github actions

Thanks to Hugo van Kemenade for contributions to this release.

Full Changelog: kjd/idna@v3.7...v3.8

v3.7

What's Changed

  • Fix issue where specially crafted inputs to encode() could take exceptionally long amount of time to process. [CVE-2024-3651]

Thanks to Guido Vranken for reporting the issue.

Full Changelog: kjd/idna@v3.6...v3.7

Changelog

Sourced from idna's changelog.

3.15 (2026-05-12)

  • Enforce DNS-length cap on individual labels early in check_label, short-circuiting contextual-rule processing for oversized input while staying compatible with UTS 46 usage.
  • Tidy core helpers: hoist bidi category sets to module-level frozensets (avoiding per-codepoint list construction), simplify length checks, and reuse the shared _unicode_dots_re from idna.core in the codec module.
  • Use raise ... from err for proper exception chaining and switch internal string formatting to f-strings.
  • Allow flit_core 4.x in the build backend.
  • Expand the ruff lint set (flake8-bugbear, flake8-simplify, pyupgrade, perflint) and apply the surfaced fixes; pin lint CI to Python 3.14.
  • Add Dependabot configuration for GitHub Actions.
  • Convert README and HISTORY from reStructuredText to Markdown.
  • Reference CVE-2026-45409 for the 3.14 advisory in place of the initial GHSA identifier.

Thanks to Felix Yan, Stan Ulbrych, and metsw24-max for contributions to this release.

3.14 (2026-05-10)

  • Removed opportunity to process long inputs into quadratic time by rejecting oversize inputs up-front. Closes a bypass of the CVE-2024-3651 mitigation. [CVE-2026-45409]

Thanks to Stan Ulbrych for reporting the issue.

3.13 (2026-04-22)

  • Correct classification error for codepoint U+A7F1

3.12 (2026-04-21)

  • Update to Unicode 17.0.0.
  • Issue a deprecation warning for the transitional argument.
  • Added lazy-loading to provide some performance improvements.
  • Removed vestiges of code related to Python 2 support, including segmentation of data structures specific to Jython.

Thanks to Rodrigo Nogueira for contributions to this release.

3.11 (2025-10-12)

  • Update to Unicode 16.0.0, including significant changes to UTS46 processing. As a result of Unicode ending support for it, transitional processing no longer has an effect and returns the same result.

... (truncated)

Commits
  • af30a09 Release 3.15
  • 30314d4 Pre-release 3.15rc0
  • 05d4b21 Merge pull request #237 from kjd/convert-docs-to-markdown
  • 2987fdb Convert README and HISTORY from reStructuredText to Markdown
  • 59fa800 Merge pull request #236 from kjd/dependabot/github_actions/actions-f3e34333ea
  • def6983 Merge branch 'master' into dependabot/github_actions/actions-f3e34333ea
  • bbd8004 Merge pull request #234 from StanFromIreland/patch-1
  • edd07c0 Bump github/codeql-action from 3.35.2 to 4.35.2 in the actions group
  • 5557db0 Merge branch 'master' into patch-1
  • f11746c Merge pull request #235 from StanFromIreland/patch-2
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    You can disable automated security fix PRs for this repo from the Security Alerts page.

Bumps [idna](https://github.com/kjd/idna) from 2.6 to 3.15.
- [Release notes](https://github.com/kjd/idna/releases)
- [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.md)
- [Commits](kjd/idna@v2.6...v3.15)

---
updated-dependencies:
- dependency-name: idna
  dependency-version: '3.15'
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file python Pull requests that update python code labels Jul 7, 2026
@socket-security

Copy link
Copy Markdown

Review the following changes in direct dependencies. Learn more about Socket for GitHub.

Diff Package Supply Chain
Security
Vulnerability Quality Maintenance License
Updatedpypi/​idna@​2.6 ⏵ 3.15100100 +3100100100

View full report

@JonathanPorta

Copy link
Copy Markdown
Owner

PR Review

Summary

This Dependabot PR bumps the direct runtime/package dependency idna from 2.6 to 3.15 in requirements.txt. The security motivation is real: the upstream changelog includes fixes after the old 2.x line, including the long-input IDNA processing issues.

The PR is not mergeable as-is, though. This package still builds and advertises Python 3.6 / AWS Lambda Python 3.6, while idna 3.15 requires Python 3.8 or newer. That means the dependency resolver/build path this repo actually uses cannot install the pinned version. Tiny diff, large rake.

Findings

  • Severity: Blocking
  • Location: requirements.txt; Dockerfile; Makefile deps; setup.py
  • Problem: requirements.txt now pins idna==3.15, but this repo is still Python 3.6-based. The Docker build starts from lambci/lambda:build-python3.6, the local deps target creates pyvenv-3.6 env, and setup.py advertises Programming Language :: Python :: 3.6. PyPI metadata for idna 3.15 declares Requires-Python: >=3.8.
  • Why it matters: A Python 3.6 Lambda/build environment cannot satisfy idna==3.15. pip install -r requirements.txt or package installation through install_requires will fail before this prebuilt Lambda artifact can be built or installed. The current GitHub checks do not catch that because only Socket checks ran.
  • Suggested fix: Either upgrade the project/runtime/build image to Python 3.8+ before taking idna 3.15, or keep idna pinned to a version that still supports Python 3.6. If the security fix requires idna 3.14+, then the runtime upgrade is the real prerequisite; do that explicitly and validate the Docker build/package path.

Test / Verification Notes

Inspected the PR title/body, full diff, requirements.txt, Dockerfile, Makefile, setup.py, README.md, prebuilt-requirements.txt, the package import code, and related ops/build files.

Ran:

  • git diff --check origin/master...HEAD - passed.
  • python3 -m py_compile setup.py lambda_image_utils_prebuilt/*.py version.py - passed on local Python 3.14 syntax only; this does not validate Python 3.6 compatibility.
  • gh pr checks https://github.com/JonathanPorta/lambda_image_utils_prebuilt/pull/18 - only Socket checks are present, and both pass.

I did not run the full build because it requires the old Python 3.6/Docker Lambda build chain and external package downloads. The compatibility blocker comes from static repo evidence plus package metadata: the repo targets Python 3.6, and PyPI reports idna 3.15 as Requires-Python: >=3.8 (https://pypi.org/pypi/idna/3.15/json).

Blessed-CICD was inspected because this PR changes a production dependency/package surface. I checked standards/github-actions/dependabot-secret-guards.md, docs/sha-pinning.md, and policies/tracked-artifacts.md. There are no GitHub Actions files in this repo, so the action pinning and Dependabot secret-job guard standards do not directly apply; the lack of a safe CI build/test job is noted above as a verification gap, not a Blessed-CICD deviation.

Overall Recommendation

Needs changes before merge.

@JonathanPorta JonathanPorta self-assigned this Jul 7, 2026
@JonathanPorta JonathanPorta merged commit e5fc8bd into master Jul 7, 2026
2 checks passed
@JonathanPorta JonathanPorta deleted the dependabot/pip/idna-3.15 branch July 7, 2026 13:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file python Pull requests that update python code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant