Search

Find a vulnerability

Search criteria

    2 vulnerabilities found for Apache Commons Codec by Apache Software Foundation

    CVE-2026-119078 (GCVE-0-2026-119078)

    Vulnerability from cvelistv5 – Published: 2026-11-09 20:11 – Updated: 2026-11-10 00:11
    VLAI
    Title
    Apache Commons Codec: Blake3 doFinalize is stateless; the documented KDF example derives identical keys
    Summary
    Apache Commons Codec's Blake3 class documented the output of its doFinalize methods as depending on any previously finalized bytes, so that consecutive calls would return different output. In fact, doFinalize does not change the hash state: calling it again without supplying more input returns the same bytes. The key-derivation example in the class Javadoc, shipped since 1.16.0, derives two keys with two consecutive doFinalize calls. Code that follows it gets identical keys, so the separation between the derived keys is lost. The same applies to any application that calls doFinalize more than once on one instance and expects new output each time. This issue affects Apache Commons Codec from 1.16.0 before 1.23.0. Version 1.23.0 corrects the documentation, but the behavior of doFinalize is unchanged. Upgrading alone does not fix affected code. Users should check their applications for repeated doFinalize calls on the same Blake3 instance and derive multiple keys by requesting the combined length in one call and splitting the output, as the updated Javadoc shows.
    Severity
    No CVSS data available.
    CWE
    • CWE-684 - Incorrect Provision of Specified Functionality
    • CWE-1068 - Inconsistency Between Implementation and Documented Design
    Assigner
    apache CNA
    Impacted products
    Vendor Product Version
    Apache Software Foundation Apache Commons Codec Affected: 1.16.0 , < 1.23.0 (maven)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2026-11-10T00:11:04.919Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "url": "http://www.openwall.com/lists/oss-security/2026/11/09/29"
              }
            ],
            "title": "CVE Program Container"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.maven.apache.org/maven2",
              "defaultStatus": "unaffected",
              "packageName": "commons-codec:commons-codec",
              "packageURL": "pkg:maven/commons-codec/commons-codec",
              "product": "Apache Commons Codec",
              "vendor": "Apache Software Foundation",
              "versions": [
                {
                  "lessThan": "1.23.0",
                  "status": "affected",
                  "version": "1.16.0",
                  "versionType": "maven"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "Claude Security"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Gary D. Gregory"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003e\u003cspan\u003eApache Commons Codec\u0027s \u003c/span\u003e\u003ccode\u003eBlake3\u003c/code\u003e\u003cspan\u003e class documented the output of its \u003c/span\u003e\u003ccode\u003edoFinalize\u003c/code\u003e\u003cspan\u003e methods as depending on any previously finalized bytes, so that consecutive calls would return different output. In fact, \u003c/span\u003e\u003ccode\u003edoFinalize\u003c/code\u003e\u003cspan\u003e does not change the hash state: calling it again without supplying more input returns the same bytes. The key-derivation example in the class Javadoc, shipped since 1.16.0, derives two keys with two consecutive \u003c/span\u003e\u003ccode\u003edoFinalize\u003c/code\u003e\u003cspan\u003e calls. Code that follows it gets identical keys, so the separation between the derived keys is lost. The same applies to any application that calls \u003c/span\u003e\u003ccode\u003edoFinalize\u003c/code\u003e\u003cspan\u003e more than once on one instance and expects new output each time.\u003c/span\u003e\u003c/p\u003e\u003cp\u003eThis issue affects Apache Commons Codec from 1.16.0 before 1.23.0.\u003c/p\u003e\u003cp\u003eVersion 1.23.0 corrects the documentation, but the behavior of \u003ccode\u003edoFinalize\u003c/code\u003e is unchanged. Upgrading alone does not fix affected code. Users should check their applications for repeated \u003ccode\u003edoFinalize\u003c/code\u003e calls on the same Blake3 instance and derive multiple keys by requesting the combined length in one call and splitting the output, as the updated Javadoc shows.\u003c/p\u003e"
                }
              ],
              "value": "Apache Commons Codec\u0027s Blake3 class documented the output of its doFinalize methods as depending on any previously finalized bytes, so that consecutive calls would return different output. In fact, doFinalize does not change the hash state: calling it again without supplying more input returns the same bytes. The key-derivation example in the class Javadoc, shipped since 1.16.0, derives two keys with two consecutive doFinalize calls. Code that follows it gets identical keys, so the separation between the derived keys is lost. The same applies to any application that calls doFinalize more than once on one instance and expects new output each time.\n\n\n\nThis issue affects Apache Commons Codec from 1.16.0 before 1.23.0.\n\n\n\nVersion 1.23.0 corrects the documentation, but the behavior of doFinalize is unchanged. Upgrading alone does not fix affected code. Users should check their applications for repeated doFinalize calls on the same Blake3 instance and derive multiple keys by requesting the combined length in one call and splitting the output, as the updated Javadoc shows."
            }
          ],
          "metrics": [
            {
              "other": {
                "content": {
                  "text": "important"
                },
                "type": "Textual description of severity"
              },
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-684",
                  "description": "CWE-684 Incorrect Provision of Specified Functionality",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-1068",
                  "description": "CWE-1068 Inconsistency Between Implementation and Documented Design",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-11-09T20:11:12.230Z",
            "orgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
            "shortName": "apache"
          },
          "references": [
            {
              "tags": [
                "vendor-advisory"
              ],
              "url": "https://lists.apache.org/thread.html/ol71kdgopfxwlxgqmkd0jrfcw05wdq5z"
            }
          ],
          "source": {
            "discovery": "INTERNAL"
          },
          "title": "Apache Commons Codec: Blake3 doFinalize is stateless; the documented KDF example derives identical keys",
          "x_generator": {
            "engine": "Vulnogram 1.0.3"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
        "assignerShortName": "apache",
        "cveId": "CVE-2026-119078",
        "datePublished": "2026-11-09T20:11:12.230Z",
        "dateReserved": "2026-10-29T13:10:03.787Z",
        "dateUpdated": "2026-11-10T00:11:04.919Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-124077 (GCVE-0-2026-124077)

    Vulnerability from cvelistv5 – Published: 2026-11-09 20:10 – Updated: 2026-11-10 00:11
    VLAI
    Title
    Apache Commons Codec: NUL bytes in tree entry names cause Git/SWHID identifier collisions (GitIdentifiers class)
    Summary
    The GitIdentifiers class in Apache Commons Codec did not reject NUL bytes in tree entry names. Because Git uses a NUL byte to mark the end of each entry name in a tree object, a crafted name could make one tree serialize to the same bytes as a different tree. Two different directory trees could then receive the same Git tree identifier or SWHID. The impact is limited: common file systems do not allow NUL bytes in file names, so trees built by walking a file system are not affected. Only applications that build trees from names supplied by other sources, such as entries of archive formats that permit NUL bytes in names (e.g. ZIP) or names passed directly to the API, are exposed. This issue affects Apache Commons Codec: from 1.22.0 before 1.23.0. Users are recommended to upgrade to version 1.23.0, which fixes the issue.
    Severity
    No CVSS data available.
    CWE
    • CWE-158 - Improper neutralization of null byte or NUL character
    Assigner
    apache CNA
    Impacted products
    Vendor Product Version
    Apache Software Foundation Apache Commons Codec Affected: 1.22.0 , < 1.23.0 (maven)
    Create a notification for this product.
    Apache Software Foundation Apache Commons Codec Affected: 387120c901f4a75c3112dfdf8877dcdec7ae685d , < 87f6aa2818836998528ff4b0d1ea35545a800ee5 (git)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2026-11-10T00:11:06.971Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "url": "http://www.openwall.com/lists/oss-security/2026/11/09/30"
              }
            ],
            "title": "CVE Program Container"
          }
        ],
        "cna": {
          "affected": [
            {
              "collectionURL": "https://repo.maven.apache.org/maven2",
              "defaultStatus": "unaffected",
              "packageName": "commons-codec:commons-codec",
              "packageURL": "pkg:maven/commons-codec/commons-codec",
              "product": "Apache Commons Codec",
              "vendor": "Apache Software Foundation",
              "versions": [
                {
                  "lessThan": "1.23.0",
                  "status": "affected",
                  "version": "1.22.0",
                  "versionType": "maven"
                }
              ]
            },
            {
              "defaultStatus": "unaffected",
              "product": "Apache Commons Codec",
              "repo": "https://gitbox.apache.org/repos/asf/commons-codec.git",
              "vendor": "Apache Software Foundation",
              "versions": [
                {
                  "lessThan": "87f6aa2818836998528ff4b0d1ea35545a800ee5",
                  "status": "affected",
                  "version": "387120c901f4a75c3112dfdf8877dcdec7ae685d",
                  "versionType": "git"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "Claude Security"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Gary D. Gregory"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eThe \u003ccode\u003eGitIdentifiers\u003c/code\u003e class in Apache Commons Codec did not reject NUL bytes in tree entry names. Because Git uses a NUL byte to mark the end of each entry name in a tree object, a crafted name could make one tree serialize to the same bytes as a different tree. Two different directory trees could then receive the same Git tree identifier or SWHID.\u003c/p\u003e\u003cp\u003eThe impact is limited: common file systems do not allow NUL bytes in file names, so trees built by walking a file system are not affected. Only applications that build trees from names supplied by other sources, such as entries of archive formats that permit NUL bytes in names (e.g. ZIP) or names passed directly to the API, are exposed.\u003c/p\u003e\u003cp\u003eThis issue affects Apache Commons Codec: from 1.22.0 before 1.23.0.\u003c/p\u003e\u003cp\u003eUsers are recommended to upgrade to version 1.23.0, which fixes the issue.\u003c/p\u003e"
                }
              ],
              "value": "The GitIdentifiers class in Apache Commons Codec did not reject NUL bytes in tree entry names. Because Git uses a NUL byte to mark the end of each entry name in a tree object, a crafted name could make one tree serialize to the same bytes as a different tree. Two different directory trees could then receive the same Git tree identifier or SWHID.\n\n\n\nThe impact is limited: common file systems do not allow NUL bytes in file names, so trees built by walking a file system are not affected. Only applications that build trees from names supplied by other sources, such as entries of archive formats that permit NUL bytes in names (e.g. ZIP) or names passed directly to the API, are exposed.\n\n\n\nThis issue affects Apache Commons Codec: from 1.22.0 before 1.23.0.\n\n\n\nUsers are recommended to upgrade to version 1.23.0, which fixes the issue."
            }
          ],
          "metrics": [
            {
              "other": {
                "content": {
                  "text": "low"
                },
                "type": "Textual description of severity"
              },
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-158",
                  "description": "CWE-158 Improper neutralization of null byte or NUL character",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-11-09T20:10:42.190Z",
            "orgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
            "shortName": "apache"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/apache/commons-codec/commit/87f6aa2818836998528ff4b0d1ea35545a800ee5.patch"
            },
            {
              "tags": [
                "vendor-advisory"
              ],
              "url": "https://lists.apache.org/thread.html/zns7tbnkq685prps9d85q7ct6oobvzsm"
            }
          ],
          "source": {
            "discovery": "INTERNAL"
          },
          "title": "Apache Commons Codec: NUL bytes in tree entry names cause Git/SWHID identifier collisions (GitIdentifiers class)",
          "x_generator": {
            "engine": "Vulnogram 1.0.3"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "f0158376-9dc2-43b6-827c-5f631a4d8d09",
        "assignerShortName": "apache",
        "cveId": "CVE-2026-124077",
        "datePublished": "2026-11-09T20:10:42.190Z",
        "dateReserved": "2026-11-06T20:45:11.690Z",
        "dateUpdated": "2026-11-10T00:11:06.971Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }