Skip to content
Heist/ feed
Back to feed
Critical

libjwt, libjwt3 — security advisory

Type: advisorySources: OSVAdvisory ID: UBUNTU-CVE-2026-44699

LibJWT is a C JSON Web Token Library. From 3.0.0 to 3.3.2, libjwt accepts an RSA JWK that does not contain an alg parameter as the verification key for an HS256/HS384/HS512 token. In the OpenSSL backend, this causes HMAC verification to run with a zero-length key, so an attacker can forge a valid JWT without knowing any secret or RSA private key. This is an algorithm-confusion authentication bypass. It affects applications that load RSA keys from JWKS where alg is omitted, which is valid JWK syntax and common in real deployments, and then choose the verification algorithm from the JWT header, for example in a kid lookup callback. This vulnerability is fixed in 3.3.3.

Products
libjwt, libjwt3
Affected versions
1.10.2-1, 1.10.2-1build1, 1.17.0-2, 1.17.0-2build1, 1.17.0-2build2, 1.17.2-1, 1.17.2-1build1, 1.17.2-1build2, 1.8.0+dfsg-1, 1.8.0+dfsg-2, 1.9.0-1, 1.9.0-1build1, 3.2.2-1, 3.2.3-1, 3.3.3-1, 3.3.3-1build1
Fixed versions
Not specified
CVEs
CVE-2026-44699
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 02:13 UTC · Revision 1

Source evidence

UBUNTU-CVE-2026-44699

core-osv · Original source

Published 15 May 2026, 17:16 UTC

LibJWT is a C JSON Web Token Library. From 3.0.0 to 3.3.2, libjwt accepts an RSA JWK that does not contain an alg parameter as the verification key for an HS256/HS384/HS512 token. In the OpenSSL backend, this causes HMAC verification to run with a zero-length key, so an attacker can forge a valid JWT without knowing any secret or RSA private key. This is an algorithm-confusion authentication bypass. It affects applications that load RSA keys from JWKS where alg is omitted, which is valid JWK syntax and common in real deployments, and then choose the verification algorithm from the JWT header, for example in a kid lookup callback. This vulnerability is fixed in 3.3.3.

osv:UBUNTU-CVE-2026-44699

libjwt

Fixed versions: Not specified

libjwt

Fixed versions: Not specified

libjwt

Fixed versions: Not specified

libjwt

Fixed versions: Not specified

libjwt

Fixed versions: Not specified

libjwt

Fixed versions: Not specified

libjwt3

Fixed versions: Not specified

libjwt

Fixed versions: Not specified

libjwt3

Fixed versions: Not specified

Complete source record
{
  "id": "e95077c51c27dcd110a603cea54bd78cc44268a7475a4996c8d41814afbe1775",
  "url": "https://osv.dev/vulnerability/UBUNTU-CVE-2026-44699",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "UBUNTU-CVE-2026-44699",
    "summary": "LibJWT is a C JSON Web Token Library. From 3.0.0 to 3.3.2, libjwt accepts an RSA JWK that does not contain an alg parameter as the verification key for an HS256/HS384/HS512 token. In the OpenSSL backend, this causes HMAC verification to run with a zero-length key, so an attacker can forge a valid JWT without knowing any secret or RSA private key. This is an algorithm-confusion authentication bypass. It affects applications that load RSA keys from JWKS where alg is omitted, which is valid JWK syntax and common in real deployments, and then choose the verification algorithm from the JWT header, for example in a kid lookup callback. This vulnerability is fixed in 3.3.3.",
    "evidence": "osv:UBUNTU-CVE-2026-44699",
    "products": [
      {
        "name": {
          "value": "libjwt",
          "evidence": "/affected/0/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.8.0+dfsg-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "1.8.0+dfsg-2",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "1.9.0-1",
            "evidence": "/affected/0/versions"
          },
          {
            "value": "1.9.0-1build1",
            "evidence": "/affected/0/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libjwt",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.10.2-1",
            "evidence": "/affected/1/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libjwt",
          "evidence": "/affected/2/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.10.2-1",
            "evidence": "/affected/2/versions"
          },
          {
            "value": "1.10.2-1build1",
            "evidence": "/affected/2/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libjwt",
          "evidence": "/affected/3/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.10.2-1build1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "1.17.0-2",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "1.17.0-2build1",
            "evidence": "/affected/3/versions"
          },
          {
            "value": "1.17.0-2build2",
            "evidence": "/affected/3/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libjwt",
          "evidence": "/affected/4/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.17.2-1",
            "evidence": "/affected/4/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libjwt",
          "evidence": "/affected/5/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.17.2-1build1",
            "evidence": "/affected/5/versions"
          },
          {
            "value": "1.17.2-1build2",
            "evidence": "/affected/5/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libjwt3",
          "evidence": "/affected/6/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "3.2.3-1",
            "evidence": "/affected/6/versions"
          },
          {
            "value": "3.3.3-1",
            "evidence": "/affected/6/versions"
          },
          {
            "value": "3.3.3-1build1",
            "evidence": "/affected/6/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libjwt",
          "evidence": "/affected/7/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "1.17.2-1",
            "evidence": "/affected/7/versions"
          },
          {
            "value": "1.17.2-1build1",
            "evidence": "/affected/7/versions"
          }
        ]
      },
      {
        "name": {
          "value": "libjwt3",
          "evidence": "/affected/8/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [],
        "affected_versions": [
          {
            "value": "3.2.2-1",
            "evidence": "/affected/8/versions"
          },
          {
            "value": "3.2.3-1",
            "evidence": "/affected/8/versions"
          }
        ]
      }
    ],
    "severity": "critical",
    "structured": {
      "id": "UBUNTU-CVE-2026-44699",
      "aliases": [
        "UBUNTU-CVE-2026-44699"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N"
        },
        {
          "type": "Ubuntu",
          "score": "medium"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libjwt",
            "purl": "pkg:deb/ubuntu/libjwt?arch=source&distro=bionic",
            "ecosystem": "Ubuntu:18.04:LTS"
          },
          "versions": [
            "1.8.0+dfsg-1",
            "1.8.0+dfsg-2",
            "1.9.0-1",
            "1.9.0-1build1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-44699.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libjwt0",
                "binary_version": "1.9.0-1build1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libjwt",
            "purl": "pkg:deb/ubuntu/libjwt?arch=source&distro=focal",
            "ecosystem": "Ubuntu:20.04:LTS"
          },
          "versions": [
            "1.10.2-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-44699.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libjwt-gnutls0",
                "binary_version": "1.10.2-1"
              },
              {
                "binary_name": "libjwt0",
                "binary_version": "1.10.2-1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libjwt",
            "purl": "pkg:deb/ubuntu/libjwt?arch=source&distro=jammy",
            "ecosystem": "Ubuntu:22.04:LTS"
          },
          "versions": [
            "1.10.2-1",
            "1.10.2-1build1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-44699.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libjwt-gnutls0",
                "binary_version": "1.10.2-1build1"
              },
              {
                "binary_name": "libjwt0",
                "binary_version": "1.10.2-1build1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libjwt",
            "purl": "pkg:deb/ubuntu/libjwt?arch=source&distro=noble",
            "ecosystem": "Ubuntu:24.04:LTS"
          },
          "versions": [
            "1.10.2-1build1",
            "1.17.0-2",
            "1.17.0-2build1",
            "1.17.0-2build2"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-44699.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libjwt-gnutls2",
                "binary_version": "1.17.0-2build2"
              },
              {
                "binary_name": "libjwt2",
                "binary_version": "1.17.0-2build2"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libjwt",
            "purl": "pkg:deb/ubuntu/libjwt?arch=source&distro=questing",
            "ecosystem": "Ubuntu:25.10"
          },
          "versions": [
            "1.17.2-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-44699.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libjwt-gnutls2",
                "binary_version": "1.17.2-1"
              },
              {
                "binary_name": "libjwt2",
                "binary_version": "1.17.2-1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libjwt",
            "purl": "pkg:deb/ubuntu/libjwt?arch=source&distro=stonking",
            "ecosystem": "Ubuntu:26.10"
          },
          "versions": [
            "1.17.2-1build1",
            "1.17.2-1build2"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-44699.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libjwt-gnutls2",
                "binary_version": "1.17.2-1build2"
              },
              {
                "binary_name": "libjwt2",
                "binary_version": "1.17.2-1build2"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libjwt3",
            "purl": "pkg:deb/ubuntu/libjwt3?arch=source&distro=stonking",
            "ecosystem": "Ubuntu:26.10"
          },
          "versions": [
            "3.2.3-1",
            "3.3.3-1",
            "3.3.3-1build1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-44699.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "jwt-tools",
                "binary_version": "3.3.3-1build1"
              },
              {
                "binary_name": "libjwt14",
                "binary_version": "3.3.3-1build1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libjwt",
            "purl": "pkg:deb/ubuntu/libjwt?arch=source&distro=resolute",
            "ecosystem": "Ubuntu:26.04:LTS"
          },
          "versions": [
            "1.17.2-1",
            "1.17.2-1build1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-44699.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "libjwt-gnutls2",
                "binary_version": "1.17.2-1build1"
              },
              {
                "binary_name": "libjwt2",
                "binary_version": "1.17.2-1build1"
              }
            ]
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "0"
                }
              ]
            }
          ],
          "package": {
            "name": "libjwt3",
            "purl": "pkg:deb/ubuntu/libjwt3?arch=source&distro=resolute",
            "ecosystem": "Ubuntu:26.04:LTS"
          },
          "versions": [
            "3.2.2-1",
            "3.2.3-1"
          ],
          "database_specific": {
            "source": "https://github.com/canonical/ubuntu-security-notices/blob/main/osv/cve/2026/UBUNTU-CVE-2026-44699.json"
          },
          "ecosystem_specific": {
            "binaries": [
              {
                "binary_name": "jwt-tools",
                "binary_version": "3.2.3-1"
              },
              {
                "binary_name": "libjwt14",
                "binary_version": "3.2.3-1"
              }
            ]
          }
        }
      ],
      "modified": "2026-10-17T12:58:20.930646198Z",
      "provider": "osv",
      "upstream": [
        "CVE-2026-44699"
      ],
      "references": [
        "https://ubuntu.com/security/CVE-2026-44699",
        "https://www.cve.org/CVERecord?id=CVE-2026-44699",
        "https://github.com/benmcollins/libjwt/security/advisories/GHSA-q843-6q5f-w55g"
      ]
    },
    "related_cves": [
      {
        "value": "CVE-2026-44699",
        "evidence": "/upstream"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 358575,
  "published_at": "2026-05-15T17:16:00+00:00"
}