Search

Find a vulnerability

Search criteria Use this form to refine search results.
Full-text search supports keyword queries with ranking and filtering.
You can combine vendor, product, and sources to narrow results.
Enable “Apply ordering” to sort by date instead of relevance.

    13 vulnerabilities by vulnerability-lookup

    CVE-2026-73432 (GCVE-0-2026-73432)

    Vulnerability from nvd – Published: 2026-08-12 14:40 – Updated: 2026-08-12 17:03
    VLAI
    Title
    Stored Server-Side Request Forgery in Remote-Instance Synchronization Allows Access to Internal Services in vulnerability-lookup
    Summary
    Vulnerability-Lookup contains a server-side request forgery (SSRF) vulnerability in the remote-instance synchronization functionality. Remote instance addresses were validated only for basic URL syntax before being stored, while the synchronization worker later dereferenced these addresses using requests.get() with automatic redirect handling and without enforcing network-boundary restrictions. An authenticated administrator with the admin:access permission could configure a remote instance whose address points to an internal, loopback, link-local, or cloud metadata HTTP(S) service. When synchronization is performed, the Vulnerability-Lookup server would issue the request from its own network context. An attacker could also use a publicly accessible URL that redirects to an internal destination, because redirects were previously followed without revalidating the destination. Successful exploitation could allow a privileged attacker to probe or interact with services that are accessible from the Vulnerability-Lookup server but not directly reachable by the attacker, including private network services or cloud instance metadata endpoints. The exact confidentiality, integrity, or availability impact depends on the services reachable from the application server. The patch introduces a shared outbound URL policy that restricts remote instances to HTTP(S), rejects non-public IP addresses, resolves hostnames at request time, and manually validates each redirect destination before following it. The implementation explicitly blocks private, loopback, link-local, multicast, reserved, and unspecified addresses.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-12 17:02 UTC
    CWE
    • CWE-918 - Server-Side Request Forgery (SSRF)
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Affected: 0 , ≤ 5.5.1 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-73432",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-12T17:02:44.957266Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-12T17:03:03.041Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.1",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "openai/gpt-5.5-cyber-preview (reasoning level: high)"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "EUVD @ ENISA Team"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Alexandre Dulaunoy"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eVulnerability-Lookup contains a \u003cstrong\u003eserver-side request forgery (SSRF)\u003c/strong\u003e vulnerability in the remote-instance synchronization functionality. Remote instance addresses were validated only for basic URL syntax before being stored, while the synchronization worker later dereferenced these addresses using \u003ccode\u003erequests.get()\u003c/code\u003e with automatic redirect handling and without enforcing network-boundary restrictions. \u003c/p\u003e\n\u003cp\u003eAn authenticated administrator with the \u003ccode\u003eadmin:access\u003c/code\u003e permission could configure a remote instance whose address points to an internal, loopback, link-local, or cloud metadata HTTP(S) service. When synchronization is performed, the Vulnerability-Lookup server would issue the request from its own network context. An attacker could also use a publicly accessible URL that redirects to an internal destination, because redirects were previously followed without revalidating the destination.\u003c/p\u003e\n\u003cp\u003eSuccessful exploitation could allow a privileged attacker to probe or interact with services that are accessible from the Vulnerability-Lookup server but not directly reachable by the attacker, including private network services or cloud instance metadata endpoints. The exact confidentiality, integrity, or availability impact depends on the services reachable from the application server.\u003c/p\u003e\n\u003cp\u003eThe patch introduces a shared outbound URL policy that restricts remote instances to HTTP(S), rejects non-public IP addresses, resolves hostnames at request time, and manually validates each redirect destination before following it.  The implementation explicitly blocks private, loopback, link-local, multicast, reserved, and unspecified addresses. \u003c/p\u003e\u003cbr\u003e"
                }
              ],
              "value": "Vulnerability-Lookup contains a server-side request forgery (SSRF) vulnerability in the remote-instance synchronization functionality. Remote instance addresses were validated only for basic URL syntax before being stored, while the synchronization worker later dereferenced these addresses using requests.get() with automatic redirect handling and without enforcing network-boundary restrictions. \n\n\nAn authenticated administrator with the admin:access permission could configure a remote instance whose address points to an internal, loopback, link-local, or cloud metadata HTTP(S) service. When synchronization is performed, the Vulnerability-Lookup server would issue the request from its own network context. An attacker could also use a publicly accessible URL that redirects to an internal destination, because redirects were previously followed without revalidating the destination.\n\n\nSuccessful exploitation could allow a privileged attacker to probe or interact with services that are accessible from the Vulnerability-Lookup server but not directly reachable by the attacker, including private network services or cloud instance metadata endpoints. The exact confidentiality, integrity, or availability impact depends on the services reachable from the application server.\n\n\nThe patch introduces a shared outbound URL policy that restricts remote instances to HTTP(S), rejects non-public IP addresses, resolves hostnames at request time, and manually validates each redirect destination before following it.  The implementation explicitly blocks private, loopback, link-local, multicast, reserved, and unspecified addresses."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-664",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-664 Server Side Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.1,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "HIGH",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "LOW",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-918",
                  "description": "CWE-918 Server-Side Request Forgery (SSRF)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-12T14:40:15.966Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/a3cf621c2583c45227a5b7880123ba0ffef3cc0f"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Stored Server-Side Request Forgery in Remote-Instance Synchronization Allows Access to Internal Services in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-73432",
        "datePublished": "2026-08-12T14:40:15.966Z",
        "dateReserved": "2026-08-12T14:40:10.040Z",
        "dateUpdated": "2026-08-12T17:03:03.041Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-73431 (GCVE-0-2026-73431)

    Vulnerability from nvd – Published: 2026-08-12 14:32 – Updated: 2026-08-12 17:07
    VLAI
    Title
    Reusable Account Activation and Recovery Tokens Allow Repeated Account Takeover in vulnerability-lookup
    Summary
    Vulnerability-Lookup contains an authentication weakness in its account activation and password-recovery mechanism. Activation and recovery links were generated using stateless signed tokens containing only the user's login. Although the token signature and age were validated, the application did not track whether a token had already been successfully used. As a result, a captured activation or password-recovery link remained valid for the entire configured TOKEN_VALIDITY_PERIOD, even after the associated password had been changed. An attacker who obtains a valid activation or recovery token could therefore replay it multiple times during its validity period to set a new password and repeatedly take control of the affected account. In addition, tokens were not bound to a specific purpose, allowing the same token mechanism to be used across activation and recovery workflows. The patch introduces purpose-bound tokens and a random nonce whose SHA-256 digest is stored with the user account. The nonce is invalidated after a successful password change, making tokens single-use, while issuing a new token invalidates any previously issued token. The password-setting operation now explicitly consumes the token before committing the account change. Successful exploitation requires the attacker to obtain a currently valid activation or recovery link, but does not require knowledge of the victim's existing password or an authenticated session.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-12 17:04 UTC
    CWE
    • CWE-294 - Authentication Bypass by Capture-replay
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Affected: 0 , ≤ 5.5.1 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-73431",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-12T17:04:55.924147Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-12T17:07:39.056Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.1",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "openai/gpt-5.5-cyber-preview (reasoning level: high)"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "EUVD @ ENISA Team"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Alexandre Dulaunoy"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eVulnerability-Lookup contains an \nauthentication weakness in its account activation and password-recovery \nmechanism. Activation and recovery links were generated using stateless \nsigned tokens containing only the user\u0027s login. Although the token \nsignature and age were validated, the application did not track whether a\n token had already been successfully used. As a result, a captured \nactivation or password-recovery link remained valid for the entire \nconfigured \u003ccode\u003eTOKEN_VALIDITY_PERIOD\u003c/code\u003e, even after the associated password had been changed. \u003c/p\u003e\n\u003cp\u003eAn attacker who obtains a valid \nactivation or recovery token could therefore replay it multiple times \nduring its validity period to set a new password and repeatedly take \ncontrol of the affected account. In addition, tokens were not bound to a\n specific purpose, allowing the same token mechanism to be used across \nactivation and recovery workflows. The patch introduces purpose-bound \ntokens and a random nonce whose SHA-256 digest is stored with the user \naccount. The nonce is invalidated after a successful password change, \nmaking tokens single-use, while issuing a new token invalidates any \npreviously issued token.  The password-setting operation now explicitly consumes the token before committing the account change. \u003c/p\u003e\n\u003cp\u003eSuccessful exploitation requires \nthe attacker to obtain a currently valid activation or recovery link, \nbut does not require knowledge of the victim\u0027s existing password or an \nauthenticated session.\u003c/p\u003e"
                }
              ],
              "value": "Vulnerability-Lookup contains an \nauthentication weakness in its account activation and password-recovery \nmechanism. Activation and recovery links were generated using stateless \nsigned tokens containing only the user\u0027s login. Although the token \nsignature and age were validated, the application did not track whether a\n token had already been successfully used. As a result, a captured \nactivation or password-recovery link remained valid for the entire \nconfigured TOKEN_VALIDITY_PERIOD, even after the associated password had been changed. \n\n\nAn attacker who obtains a valid \nactivation or recovery token could therefore replay it multiple times \nduring its validity period to set a new password and repeatedly take \ncontrol of the affected account. In addition, tokens were not bound to a\n specific purpose, allowing the same token mechanism to be used across \nactivation and recovery workflows. The patch introduces purpose-bound \ntokens and a random nonce whose SHA-256 digest is stored with the user \naccount. The nonce is invalidated after a successful password change, \nmaking tokens single-use, while issuing a new token invalidates any \npreviously issued token.  The password-setting operation now explicitly consumes the token before committing the account change. \n\n\nSuccessful exploitation requires \nthe attacker to obtain a currently valid activation or recovery link, \nbut does not require knowledge of the victim\u0027s existing password or an \nauthenticated session."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-50",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-50 Password Recovery Exploitation"
                }
              ]
            },
            {
              "capecId": "CAPEC-60",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-60 Reusing Session IDs (aka Session Replay)"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "HIGH",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.8,
                "baseSeverity": "HIGH",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "HIGH",
                "subIntegrityImpact": "HIGH",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-294",
                  "description": "CWE-294 Authentication Bypass by Capture-replay",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-12T14:32:56.538Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/bef837242657acf680832be56b94428df130ed67"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Reusable Account Activation and Recovery Tokens Allow Repeated Account Takeover in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-73431",
        "datePublished": "2026-08-12T14:32:56.538Z",
        "dateReserved": "2026-08-12T14:32:51.876Z",
        "dateUpdated": "2026-08-12T17:07:39.056Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-73405 (GCVE-0-2026-73405)

    Vulnerability from nvd – Published: 2026-08-12 14:15 – Updated: 2026-08-12 17:10
    VLAI
    Title
    Authorization Bypass in SSE Pub/Sub Allows Unconfirmed Accounts to Access Stream Events in vulnerability-lookup
    Summary
    An authorization bypass vulnerability in Vulnerability-Lookup allowed inactive or unconfirmed accounts to subscribe to Server-Sent Events (SSE) streams through the /pubsub/subscribe/<topic> endpoint. The token_required decorator used by the Pub/Sub interface authenticated requests solely by matching the X-API-KEY header against an existing user API key. Unlike the REST API authentication mechanism, it did not verify the account's is_active and is_confirmed state. Because the self-registration process issues an API key before account confirmation is completed, an attacker could create an account and immediately use the resulting API key to access Pub/Sub topics that should only be available to active, confirmed users. This could expose stream events that would otherwise be inaccessible through the REST API, including newly submitted or not-yet-moderated data such as comments. The vulnerability results from inconsistent authorization enforcement between the REST API and the SSE streaming interface. The patch corrects the issue by requiring accounts to be both active and confirmed before permitting access to Pub/Sub streams, bringing the SSE authorization boundary in line with the REST API.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-12 17:10 UTC
    CWE
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Affected: 0 , ≤ 5.5.1 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-73405",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-12T17:10:10.914574Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-12T17:10:19.723Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.1",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "openai/gpt-5.5-cyber-preview (reasoning level: high)"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "EUVD @ ENISA Team"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Alexandre Dulaunoy"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAn authorization bypass vulnerability in \u003cstrong\u003eVulnerability-Lookup\u003c/strong\u003e allowed inactive or unconfirmed accounts to subscribe to Server-Sent Events (SSE) streams through the \u003ccode\u003e/pubsub/subscribe/\u0026lt;topic\u0026gt;\u003c/code\u003e endpoint.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003etoken_required\u003c/code\u003e decorator used by the Pub/Sub interface authenticated requests solely by matching the \u003ccode\u003eX-API-KEY\u003c/code\u003e header against an existing user API key. Unlike the REST API authentication mechanism, it did not verify the account\u0027s \u003ccode\u003eis_active\u003c/code\u003e and \u003ccode\u003eis_confirmed\u003c/code\u003e state.\u003c/p\u003e\n\u003cp\u003eBecause the self-registration process issues an API key before account confirmation is completed, an attacker could create an account and immediately use the resulting API key to access Pub/Sub topics that should only be available to active, confirmed users. This could expose stream events that would otherwise be inaccessible through the REST API, including newly submitted or not-yet-moderated data such as comments.\u003c/p\u003e\n\u003cp\u003eThe vulnerability results from inconsistent authorization enforcement between the REST API and the SSE streaming interface.\u003c/p\u003e\n\u003cp\u003eThe patch corrects the issue by requiring accounts to be both \u003cstrong\u003eactive\u003c/strong\u003e and \u003cstrong\u003econfirmed\u003c/strong\u003e before permitting access to Pub/Sub streams, bringing the SSE authorization boundary in line with the REST API.\u003c/p\u003e\u003cbr\u003e"
                }
              ],
              "value": "An authorization bypass vulnerability in Vulnerability-Lookup allowed inactive or unconfirmed accounts to subscribe to Server-Sent Events (SSE) streams through the /pubsub/subscribe/\u003ctopic\u003e endpoint.\n\n\nThe token_required decorator used by the Pub/Sub interface authenticated requests solely by matching the X-API-KEY header against an existing user API key. Unlike the REST API authentication mechanism, it did not verify the account\u0027s is_active and is_confirmed state.\n\n\nBecause the self-registration process issues an API key before account confirmation is completed, an attacker could create an account and immediately use the resulting API key to access Pub/Sub topics that should only be available to active, confirmed users. This could expose stream events that would otherwise be inaccessible through the REST API, including newly submitted or not-yet-moderated data such as comments.\n\n\nThe vulnerability results from inconsistent authorization enforcement between the REST API and the SSE streaming interface.\n\n\nThe patch corrects the issue by requiring accounts to be both active and confirmed before permitting access to Pub/Sub streams, bringing the SSE authorization boundary in line with the REST API."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-12T14:15:58.039Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/bef837242657acf680832be56b94428df130ed67"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Authorization Bypass in SSE Pub/Sub Allows Unconfirmed Accounts to Access Stream Events in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-73405",
        "datePublished": "2026-08-12T14:15:58.039Z",
        "dateReserved": "2026-08-12T14:15:51.914Z",
        "dateUpdated": "2026-08-12T17:10:19.723Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-73374 (GCVE-0-2026-73374)

    Vulnerability from nvd – Published: 2026-08-12 14:05 – Updated: 2026-08-12 17:12
    VLAI
    Title
    Stored Cross-Site Scripting (XSS) via Unescaped CNA Reference Tags in vulnerability-lookup
    Summary
    A stored cross-site scripting (XSS) vulnerability existed in Vulnerability-Lookup in the render_tag_badges Jinja filter used to display reference tags associated with vulnerability records. Values from containers.cna.references[].tags[] were directly interpolated into HTML badge elements and the resulting string was wrapped in markupsafe.Markup. Because Markup marks the generated content as safe, Jinja's automatic HTML escaping was bypassed. An authenticated user with permissions to create or modify vulnerability records, such as a user holding the vulnerability:create or vulnerability:modify permission, could submit a crafted reference tag through the CNA API containing arbitrary HTML or JavaScript-capable markup. The malicious value would subsequently be stored as part of the vulnerability record. When another user visited the corresponding public /cve/<id> or /vuln/<id> page, the crafted tag would be rendered as HTML in the viewer's browser. This could result in JavaScript execution in the security context of the Vulnerability-Lookup application. Successful exploitation could allow an attacker to perform actions in the context of a victim, access information available to the victim's browser session, or modify page content. As the affected vulnerability pages can be accessed publicly, exploitation may affect users who are not authenticated. The issue was corrected by applying markupsafe.escape() to each reference tag before inserting it into the HTML badge markup, while retaining Markup only for the static HTML scaffolding.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-12 17:12 UTC
    CWE
    • CWE-79 - Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting')
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Affected: 0 , ≤ 5.5.1 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-73374",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-12T17:12:10.763639Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-12T17:12:36.380Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.1",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "openai/gpt-5.5-cyber-preview (reasoning level: high)"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "EUVD @ ENISA Team"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Alexandre Dulaunoy"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eA stored cross-site scripting (XSS) vulnerability existed in \u003cstrong\u003eVulnerability-Lookup\u003c/strong\u003e in the \u003ccode\u003erender_tag_badges\u003c/code\u003e Jinja filter used to display reference tags associated with vulnerability records.\u003c/p\u003e\u003cp\u003eValues from \u003ccode\u003econtainers.cna.references[].tags[]\u003c/code\u003e were directly interpolated into HTML badge elements and the resulting string was wrapped in \u003ccode\u003emarkupsafe.Markup\u003c/code\u003e. Because \u003ccode\u003eMarkup\u003c/code\u003e marks the generated content as safe, Jinja\u0027s automatic HTML escaping was bypassed.\u003c/p\u003e\u003cp\u003eAn authenticated user with permissions to create or modify vulnerability records, such as a user holding the \u003ccode\u003evulnerability:create\u003c/code\u003e or \u003ccode\u003evulnerability:modify\u003c/code\u003e permission, could submit a crafted reference tag through the CNA API containing arbitrary HTML or JavaScript-capable markup.\u003c/p\u003e\u003cp\u003eThe malicious value would subsequently be stored as part of the vulnerability record. When another user visited the corresponding public \u003ccode\u003e/cve/\u0026lt;id\u0026gt;\u003c/code\u003e or \u003ccode\u003e/vuln/\u0026lt;id\u0026gt;\u003c/code\u003e page, the crafted tag would be rendered as HTML in the viewer\u0027s browser. This could result in JavaScript execution in the security context of the Vulnerability-Lookup application.\u003c/p\u003e\u003cp\u003eSuccessful exploitation could allow an attacker to perform actions in the context of a victim, access information available to the victim\u0027s browser session, or modify page content. As the affected vulnerability pages can be accessed publicly, exploitation may affect users who are not authenticated.\u003c/p\u003e\u003cp\u003eThe issue was corrected by applying \u003ccode\u003emarkupsafe.escape()\u003c/code\u003e to each reference tag before inserting it into the HTML badge markup, while retaining \u003ccode\u003eMarkup\u003c/code\u003e only for the static HTML scaffolding.\u003c/p\u003e\u003cbr\u003e"
                }
              ],
              "value": "A stored cross-site scripting (XSS) vulnerability existed in Vulnerability-Lookup in the render_tag_badges Jinja filter used to display reference tags associated with vulnerability records.\n\nValues from containers.cna.references[].tags[] were directly interpolated into HTML badge elements and the resulting string was wrapped in markupsafe.Markup. Because Markup marks the generated content as safe, Jinja\u0027s automatic HTML escaping was bypassed.\n\nAn authenticated user with permissions to create or modify vulnerability records, such as a user holding the vulnerability:create or vulnerability:modify permission, could submit a crafted reference tag through the CNA API containing arbitrary HTML or JavaScript-capable markup.\n\nThe malicious value would subsequently be stored as part of the vulnerability record. When another user visited the corresponding public /cve/\u003cid\u003e or /vuln/\u003cid\u003e page, the crafted tag would be rendered as HTML in the viewer\u0027s browser. This could result in JavaScript execution in the security context of the Vulnerability-Lookup application.\n\nSuccessful exploitation could allow an attacker to perform actions in the context of a victim, access information available to the victim\u0027s browser session, or modify page content. As the affected vulnerability pages can be accessed publicly, exploitation may affect users who are not authenticated.\n\nThe issue was corrected by applying markupsafe.escape() to each reference tag before inserting it into the HTML badge markup, while retaining Markup only for the static HTML scaffolding."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-63",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-63 Cross-Site Scripting (XSS)"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.1,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "HIGH",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:H/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-79",
                  "description": "CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or \u0027Cross-site Scripting\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-12T14:05:39.735Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/d29901655c50cf3c25737d9ea86180268df51b57"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Stored Cross-Site Scripting (XSS) via Unescaped CNA Reference Tags in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-73374",
        "datePublished": "2026-08-12T14:05:39.735Z",
        "dateReserved": "2026-08-12T14:05:33.426Z",
        "dateUpdated": "2026-08-12T17:12:36.380Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-72761 (GCVE-0-2026-72761)

    Vulnerability from nvd – Published: 2026-08-10 14:33 – Updated: 2026-08-10 17:00
    VLAI
    Title
    Webhook SSRF guard bypassed by IPv6 transition addresses (NAT64/6to4/Teredo pass is_global check) in vulnerability-lookup
    Summary
    The webhook URL validator in `website/notifications/webhooks.py` uses `ip.is_global` to reject non-public addresses after DNS resolution. IPv6 transition addresses (NAT64 `64:ff9b::/96`, 6to4 `2002::/16`, Teredo `2001:0000::/32`) are classified as globally routable by IANA, so `is_global` returns `True` even when the embedded IPv4 targets a private, loopback, or cloud metadata destination. An attacker can register a webhook pointing at a hostname that resolves to a transition address to bypass the SSRF guard and exfiltrate vulnerability data to an internal endpoint. The vulnerability was introduced on a non-release version. The fix was already done on HEAD. It only affects organisation running the HEAD.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-10 17:00 UTC
    CWE
    • CWE-918 - Server-Side Request Forgery (SSRF)
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Unaffected: 0 , ≤ 5.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-72761",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-10T17:00:38.181767Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-10T17:00:48.661Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.0",
                  "status": "unaffected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "tonghuaroot"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Cedric Bonhomme"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "The webhook URL validator in `website/notifications/webhooks.py` uses\u003cbr\u003e`ip.is_global` to reject non-public addresses after DNS resolution. IPv6\u003cbr\u003etransition addresses (NAT64 `64:ff9b::/96`, 6to4 `2002::/16`, Teredo\u003cbr\u003e`2001:0000::/32`) are classified as globally routable by IANA, so `is_global`\u003cbr\u003ereturns `True` even when the embedded IPv4 targets a private, loopback, or\u003cbr\u003ecloud metadata destination. An attacker can register a webhook pointing at a\u003cbr\u003ehostname that resolves to a transition address to bypass the SSRF guard and\u003cbr\u003eexfiltrate vulnerability data to an internal endpoint.\u003cbr\u003e\u003cbr\u003e\u003cdiv\u003eThe vulnerability was introduced on a non-release version. The fix was already done on HEAD. It only affects\u003c/div\u003e\u003cdiv\u003eorganisation running the HEAD.\u003c/div\u003e\u003cbr\u003e"
                }
              ],
              "value": "The webhook URL validator in `website/notifications/webhooks.py` uses\n`ip.is_global` to reject non-public addresses after DNS resolution. IPv6\ntransition addresses (NAT64 `64:ff9b::/96`, 6to4 `2002::/16`, Teredo\n`2001:0000::/32`) are classified as globally routable by IANA, so `is_global`\nreturns `True` even when the embedded IPv4 targets a private, loopback, or\ncloud metadata destination. An attacker can register a webhook pointing at a\nhostname that resolves to a transition address to bypass the SSRF guard and\nexfiltrate vulnerability data to an internal endpoint.\n\nThe vulnerability was introduced on a non-release version. The fix was already done on HEAD. It only affects\n\norganisation running the HEAD."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-664",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-664 Server Side Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.9,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-918",
                  "description": "CWE-918 Server-Side Request Forgery (SSRF)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-10T14:33:13.106Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/f3e0c6899c5b3823dcfd860fc6cb3edbedc9bf65"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Webhook SSRF guard bypassed by IPv6 transition addresses (NAT64/6to4/Teredo pass is_global check) in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-72761",
        "datePublished": "2026-08-10T14:33:13.106Z",
        "dateReserved": "2026-08-10T14:32:19.844Z",
        "dateUpdated": "2026-08-10T17:00:48.661Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-73432 (GCVE-0-2026-73432)

    Vulnerability from cvelistv5 – Published: 2026-08-12 14:40 – Updated: 2026-08-12 17:03
    VLAI
    Title
    Stored Server-Side Request Forgery in Remote-Instance Synchronization Allows Access to Internal Services in vulnerability-lookup
    Summary
    Vulnerability-Lookup contains a server-side request forgery (SSRF) vulnerability in the remote-instance synchronization functionality. Remote instance addresses were validated only for basic URL syntax before being stored, while the synchronization worker later dereferenced these addresses using requests.get() with automatic redirect handling and without enforcing network-boundary restrictions. An authenticated administrator with the admin:access permission could configure a remote instance whose address points to an internal, loopback, link-local, or cloud metadata HTTP(S) service. When synchronization is performed, the Vulnerability-Lookup server would issue the request from its own network context. An attacker could also use a publicly accessible URL that redirects to an internal destination, because redirects were previously followed without revalidating the destination. Successful exploitation could allow a privileged attacker to probe or interact with services that are accessible from the Vulnerability-Lookup server but not directly reachable by the attacker, including private network services or cloud instance metadata endpoints. The exact confidentiality, integrity, or availability impact depends on the services reachable from the application server. The patch introduces a shared outbound URL policy that restricts remote instances to HTTP(S), rejects non-public IP addresses, resolves hostnames at request time, and manually validates each redirect destination before following it. The implementation explicitly blocks private, loopback, link-local, multicast, reserved, and unspecified addresses.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-12 17:02 UTC
    CWE
    • CWE-918 - Server-Side Request Forgery (SSRF)
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Affected: 0 , ≤ 5.5.1 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-73432",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-12T17:02:44.957266Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-12T17:03:03.041Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.1",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "openai/gpt-5.5-cyber-preview (reasoning level: high)"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "EUVD @ ENISA Team"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Alexandre Dulaunoy"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eVulnerability-Lookup contains a \u003cstrong\u003eserver-side request forgery (SSRF)\u003c/strong\u003e vulnerability in the remote-instance synchronization functionality. Remote instance addresses were validated only for basic URL syntax before being stored, while the synchronization worker later dereferenced these addresses using \u003ccode\u003erequests.get()\u003c/code\u003e with automatic redirect handling and without enforcing network-boundary restrictions. \u003c/p\u003e\n\u003cp\u003eAn authenticated administrator with the \u003ccode\u003eadmin:access\u003c/code\u003e permission could configure a remote instance whose address points to an internal, loopback, link-local, or cloud metadata HTTP(S) service. When synchronization is performed, the Vulnerability-Lookup server would issue the request from its own network context. An attacker could also use a publicly accessible URL that redirects to an internal destination, because redirects were previously followed without revalidating the destination.\u003c/p\u003e\n\u003cp\u003eSuccessful exploitation could allow a privileged attacker to probe or interact with services that are accessible from the Vulnerability-Lookup server but not directly reachable by the attacker, including private network services or cloud instance metadata endpoints. The exact confidentiality, integrity, or availability impact depends on the services reachable from the application server.\u003c/p\u003e\n\u003cp\u003eThe patch introduces a shared outbound URL policy that restricts remote instances to HTTP(S), rejects non-public IP addresses, resolves hostnames at request time, and manually validates each redirect destination before following it.  The implementation explicitly blocks private, loopback, link-local, multicast, reserved, and unspecified addresses. \u003c/p\u003e\u003cbr\u003e"
                }
              ],
              "value": "Vulnerability-Lookup contains a server-side request forgery (SSRF) vulnerability in the remote-instance synchronization functionality. Remote instance addresses were validated only for basic URL syntax before being stored, while the synchronization worker later dereferenced these addresses using requests.get() with automatic redirect handling and without enforcing network-boundary restrictions. \n\n\nAn authenticated administrator with the admin:access permission could configure a remote instance whose address points to an internal, loopback, link-local, or cloud metadata HTTP(S) service. When synchronization is performed, the Vulnerability-Lookup server would issue the request from its own network context. An attacker could also use a publicly accessible URL that redirects to an internal destination, because redirects were previously followed without revalidating the destination.\n\n\nSuccessful exploitation could allow a privileged attacker to probe or interact with services that are accessible from the Vulnerability-Lookup server but not directly reachable by the attacker, including private network services or cloud instance metadata endpoints. The exact confidentiality, integrity, or availability impact depends on the services reachable from the application server.\n\n\nThe patch introduces a shared outbound URL policy that restricts remote instances to HTTP(S), rejects non-public IP addresses, resolves hostnames at request time, and manually validates each redirect destination before following it.  The implementation explicitly blocks private, loopback, link-local, multicast, reserved, and unspecified addresses."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-664",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-664 Server Side Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.1,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "HIGH",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "LOW",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:H/UI:N/VC:L/VI:L/VA:N/SC:L/SI:L/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-918",
                  "description": "CWE-918 Server-Side Request Forgery (SSRF)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-12T14:40:15.966Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/a3cf621c2583c45227a5b7880123ba0ffef3cc0f"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Stored Server-Side Request Forgery in Remote-Instance Synchronization Allows Access to Internal Services in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-73432",
        "datePublished": "2026-08-12T14:40:15.966Z",
        "dateReserved": "2026-08-12T14:40:10.040Z",
        "dateUpdated": "2026-08-12T17:03:03.041Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-73431 (GCVE-0-2026-73431)

    Vulnerability from cvelistv5 – Published: 2026-08-12 14:32 – Updated: 2026-08-12 17:07
    VLAI
    Title
    Reusable Account Activation and Recovery Tokens Allow Repeated Account Takeover in vulnerability-lookup
    Summary
    Vulnerability-Lookup contains an authentication weakness in its account activation and password-recovery mechanism. Activation and recovery links were generated using stateless signed tokens containing only the user's login. Although the token signature and age were validated, the application did not track whether a token had already been successfully used. As a result, a captured activation or password-recovery link remained valid for the entire configured TOKEN_VALIDITY_PERIOD, even after the associated password had been changed. An attacker who obtains a valid activation or recovery token could therefore replay it multiple times during its validity period to set a new password and repeatedly take control of the affected account. In addition, tokens were not bound to a specific purpose, allowing the same token mechanism to be used across activation and recovery workflows. The patch introduces purpose-bound tokens and a random nonce whose SHA-256 digest is stored with the user account. The nonce is invalidated after a successful password change, making tokens single-use, while issuing a new token invalidates any previously issued token. The password-setting operation now explicitly consumes the token before committing the account change. Successful exploitation requires the attacker to obtain a currently valid activation or recovery link, but does not require knowledge of the victim's existing password or an authenticated session.
    SSVC
    Exploitation: none Automatable: no Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-12 17:04 UTC
    CWE
    • CWE-294 - Authentication Bypass by Capture-replay
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Affected: 0 , ≤ 5.5.1 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-73431",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-12T17:04:55.924147Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-12T17:07:39.056Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.1",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "openai/gpt-5.5-cyber-preview (reasoning level: high)"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "EUVD @ ENISA Team"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Alexandre Dulaunoy"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eVulnerability-Lookup contains an \nauthentication weakness in its account activation and password-recovery \nmechanism. Activation and recovery links were generated using stateless \nsigned tokens containing only the user\u0027s login. Although the token \nsignature and age were validated, the application did not track whether a\n token had already been successfully used. As a result, a captured \nactivation or password-recovery link remained valid for the entire \nconfigured \u003ccode\u003eTOKEN_VALIDITY_PERIOD\u003c/code\u003e, even after the associated password had been changed. \u003c/p\u003e\n\u003cp\u003eAn attacker who obtains a valid \nactivation or recovery token could therefore replay it multiple times \nduring its validity period to set a new password and repeatedly take \ncontrol of the affected account. In addition, tokens were not bound to a\n specific purpose, allowing the same token mechanism to be used across \nactivation and recovery workflows. The patch introduces purpose-bound \ntokens and a random nonce whose SHA-256 digest is stored with the user \naccount. The nonce is invalidated after a successful password change, \nmaking tokens single-use, while issuing a new token invalidates any \npreviously issued token.  The password-setting operation now explicitly consumes the token before committing the account change. \u003c/p\u003e\n\u003cp\u003eSuccessful exploitation requires \nthe attacker to obtain a currently valid activation or recovery link, \nbut does not require knowledge of the victim\u0027s existing password or an \nauthenticated session.\u003c/p\u003e"
                }
              ],
              "value": "Vulnerability-Lookup contains an \nauthentication weakness in its account activation and password-recovery \nmechanism. Activation and recovery links were generated using stateless \nsigned tokens containing only the user\u0027s login. Although the token \nsignature and age were validated, the application did not track whether a\n token had already been successfully used. As a result, a captured \nactivation or password-recovery link remained valid for the entire \nconfigured TOKEN_VALIDITY_PERIOD, even after the associated password had been changed. \n\n\nAn attacker who obtains a valid \nactivation or recovery token could therefore replay it multiple times \nduring its validity period to set a new password and repeatedly take \ncontrol of the affected account. In addition, tokens were not bound to a\n specific purpose, allowing the same token mechanism to be used across \nactivation and recovery workflows. The patch introduces purpose-bound \ntokens and a random nonce whose SHA-256 digest is stored with the user \naccount. The nonce is invalidated after a successful password change, \nmaking tokens single-use, while issuing a new token invalidates any \npreviously issued token.  The password-setting operation now explicitly consumes the token before committing the account change. \n\n\nSuccessful exploitation requires \nthe attacker to obtain a currently valid activation or recovery link, \nbut does not require knowledge of the victim\u0027s existing password or an \nauthenticated session."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-50",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-50 Password Recovery Exploitation"
                }
              ]
            },
            {
              "capecId": "CAPEC-60",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-60 Reusing Session IDs (aka Session Replay)"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "HIGH",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 8.8,
                "baseSeverity": "HIGH",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "HIGH",
                "subIntegrityImpact": "HIGH",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:L/UI:N/VC:H/VI:H/VA:N/SC:H/SI:H/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-294",
                  "description": "CWE-294 Authentication Bypass by Capture-replay",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-12T14:32:56.538Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/bef837242657acf680832be56b94428df130ed67"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Reusable Account Activation and Recovery Tokens Allow Repeated Account Takeover in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-73431",
        "datePublished": "2026-08-12T14:32:56.538Z",
        "dateReserved": "2026-08-12T14:32:51.876Z",
        "dateUpdated": "2026-08-12T17:07:39.056Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-73405 (GCVE-0-2026-73405)

    Vulnerability from cvelistv5 – Published: 2026-08-12 14:15 – Updated: 2026-08-12 17:10
    VLAI
    Title
    Authorization Bypass in SSE Pub/Sub Allows Unconfirmed Accounts to Access Stream Events in vulnerability-lookup
    Summary
    An authorization bypass vulnerability in Vulnerability-Lookup allowed inactive or unconfirmed accounts to subscribe to Server-Sent Events (SSE) streams through the /pubsub/subscribe/<topic> endpoint. The token_required decorator used by the Pub/Sub interface authenticated requests solely by matching the X-API-KEY header against an existing user API key. Unlike the REST API authentication mechanism, it did not verify the account's is_active and is_confirmed state. Because the self-registration process issues an API key before account confirmation is completed, an attacker could create an account and immediately use the resulting API key to access Pub/Sub topics that should only be available to active, confirmed users. This could expose stream events that would otherwise be inaccessible through the REST API, including newly submitted or not-yet-moderated data such as comments. The vulnerability results from inconsistent authorization enforcement between the REST API and the SSE streaming interface. The patch corrects the issue by requiring accounts to be both active and confirmed before permitting access to Pub/Sub streams, bringing the SSE authorization boundary in line with the REST API.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-12 17:10 UTC
    CWE
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Affected: 0 , ≤ 5.5.1 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-73405",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-12T17:10:10.914574Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-12T17:10:19.723Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.1",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "openai/gpt-5.5-cyber-preview (reasoning level: high)"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "EUVD @ ENISA Team"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Alexandre Dulaunoy"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eAn authorization bypass vulnerability in \u003cstrong\u003eVulnerability-Lookup\u003c/strong\u003e allowed inactive or unconfirmed accounts to subscribe to Server-Sent Events (SSE) streams through the \u003ccode\u003e/pubsub/subscribe/\u0026lt;topic\u0026gt;\u003c/code\u003e endpoint.\u003c/p\u003e\n\u003cp\u003eThe \u003ccode\u003etoken_required\u003c/code\u003e decorator used by the Pub/Sub interface authenticated requests solely by matching the \u003ccode\u003eX-API-KEY\u003c/code\u003e header against an existing user API key. Unlike the REST API authentication mechanism, it did not verify the account\u0027s \u003ccode\u003eis_active\u003c/code\u003e and \u003ccode\u003eis_confirmed\u003c/code\u003e state.\u003c/p\u003e\n\u003cp\u003eBecause the self-registration process issues an API key before account confirmation is completed, an attacker could create an account and immediately use the resulting API key to access Pub/Sub topics that should only be available to active, confirmed users. This could expose stream events that would otherwise be inaccessible through the REST API, including newly submitted or not-yet-moderated data such as comments.\u003c/p\u003e\n\u003cp\u003eThe vulnerability results from inconsistent authorization enforcement between the REST API and the SSE streaming interface.\u003c/p\u003e\n\u003cp\u003eThe patch corrects the issue by requiring accounts to be both \u003cstrong\u003eactive\u003c/strong\u003e and \u003cstrong\u003econfirmed\u003c/strong\u003e before permitting access to Pub/Sub streams, bringing the SSE authorization boundary in line with the REST API.\u003c/p\u003e\u003cbr\u003e"
                }
              ],
              "value": "An authorization bypass vulnerability in Vulnerability-Lookup allowed inactive or unconfirmed accounts to subscribe to Server-Sent Events (SSE) streams through the /pubsub/subscribe/\u003ctopic\u003e endpoint.\n\n\nThe token_required decorator used by the Pub/Sub interface authenticated requests solely by matching the X-API-KEY header against an existing user API key. Unlike the REST API authentication mechanism, it did not verify the account\u0027s is_active and is_confirmed state.\n\n\nBecause the self-registration process issues an API key before account confirmation is completed, an attacker could create an account and immediately use the resulting API key to access Pub/Sub topics that should only be available to active, confirmed users. This could expose stream events that would otherwise be inaccessible through the REST API, including newly submitted or not-yet-moderated data such as comments.\n\n\nThe vulnerability results from inconsistent authorization enforcement between the REST API and the SSE streaming interface.\n\n\nThe patch corrects the issue by requiring accounts to be both active and confirmed before permitting access to Pub/Sub streams, bringing the SSE authorization boundary in line with the REST API."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-1",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-1 Accessing Functionality Not Properly Constrained by ACLs"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.3,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:L/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-12T14:15:58.039Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/bef837242657acf680832be56b94428df130ed67"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Authorization Bypass in SSE Pub/Sub Allows Unconfirmed Accounts to Access Stream Events in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-73405",
        "datePublished": "2026-08-12T14:15:58.039Z",
        "dateReserved": "2026-08-12T14:15:51.914Z",
        "dateUpdated": "2026-08-12T17:10:19.723Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-73374 (GCVE-0-2026-73374)

    Vulnerability from cvelistv5 – Published: 2026-08-12 14:05 – Updated: 2026-08-12 17:12
    VLAI
    Title
    Stored Cross-Site Scripting (XSS) via Unescaped CNA Reference Tags in vulnerability-lookup
    Summary
    A stored cross-site scripting (XSS) vulnerability existed in Vulnerability-Lookup in the render_tag_badges Jinja filter used to display reference tags associated with vulnerability records. Values from containers.cna.references[].tags[] were directly interpolated into HTML badge elements and the resulting string was wrapped in markupsafe.Markup. Because Markup marks the generated content as safe, Jinja's automatic HTML escaping was bypassed. An authenticated user with permissions to create or modify vulnerability records, such as a user holding the vulnerability:create or vulnerability:modify permission, could submit a crafted reference tag through the CNA API containing arbitrary HTML or JavaScript-capable markup. The malicious value would subsequently be stored as part of the vulnerability record. When another user visited the corresponding public /cve/<id> or /vuln/<id> page, the crafted tag would be rendered as HTML in the viewer's browser. This could result in JavaScript execution in the security context of the Vulnerability-Lookup application. Successful exploitation could allow an attacker to perform actions in the context of a victim, access information available to the victim's browser session, or modify page content. As the affected vulnerability pages can be accessed publicly, exploitation may affect users who are not authenticated. The issue was corrected by applying markupsafe.escape() to each reference tag before inserting it into the HTML badge markup, while retaining Markup only for the static HTML scaffolding.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-12 17:12 UTC
    CWE
    • CWE-79 - Improper Neutralization of Input During Web Page Generation (XSS or 'Cross-site Scripting')
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Affected: 0 , ≤ 5.5.1 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-73374",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-12T17:12:10.763639Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-12T17:12:36.380Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.1",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "tool",
              "value": "openai/gpt-5.5-cyber-preview (reasoning level: high)"
            },
            {
              "lang": "en",
              "type": "reporter",
              "value": "EUVD @ ENISA Team"
            },
            {
              "lang": "en",
              "type": "remediation reviewer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Alexandre Dulaunoy"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eA stored cross-site scripting (XSS) vulnerability existed in \u003cstrong\u003eVulnerability-Lookup\u003c/strong\u003e in the \u003ccode\u003erender_tag_badges\u003c/code\u003e Jinja filter used to display reference tags associated with vulnerability records.\u003c/p\u003e\u003cp\u003eValues from \u003ccode\u003econtainers.cna.references[].tags[]\u003c/code\u003e were directly interpolated into HTML badge elements and the resulting string was wrapped in \u003ccode\u003emarkupsafe.Markup\u003c/code\u003e. Because \u003ccode\u003eMarkup\u003c/code\u003e marks the generated content as safe, Jinja\u0027s automatic HTML escaping was bypassed.\u003c/p\u003e\u003cp\u003eAn authenticated user with permissions to create or modify vulnerability records, such as a user holding the \u003ccode\u003evulnerability:create\u003c/code\u003e or \u003ccode\u003evulnerability:modify\u003c/code\u003e permission, could submit a crafted reference tag through the CNA API containing arbitrary HTML or JavaScript-capable markup.\u003c/p\u003e\u003cp\u003eThe malicious value would subsequently be stored as part of the vulnerability record. When another user visited the corresponding public \u003ccode\u003e/cve/\u0026lt;id\u0026gt;\u003c/code\u003e or \u003ccode\u003e/vuln/\u0026lt;id\u0026gt;\u003c/code\u003e page, the crafted tag would be rendered as HTML in the viewer\u0027s browser. This could result in JavaScript execution in the security context of the Vulnerability-Lookup application.\u003c/p\u003e\u003cp\u003eSuccessful exploitation could allow an attacker to perform actions in the context of a victim, access information available to the victim\u0027s browser session, or modify page content. As the affected vulnerability pages can be accessed publicly, exploitation may affect users who are not authenticated.\u003c/p\u003e\u003cp\u003eThe issue was corrected by applying \u003ccode\u003emarkupsafe.escape()\u003c/code\u003e to each reference tag before inserting it into the HTML badge markup, while retaining \u003ccode\u003eMarkup\u003c/code\u003e only for the static HTML scaffolding.\u003c/p\u003e\u003cbr\u003e"
                }
              ],
              "value": "A stored cross-site scripting (XSS) vulnerability existed in Vulnerability-Lookup in the render_tag_badges Jinja filter used to display reference tags associated with vulnerability records.\n\nValues from containers.cna.references[].tags[] were directly interpolated into HTML badge elements and the resulting string was wrapped in markupsafe.Markup. Because Markup marks the generated content as safe, Jinja\u0027s automatic HTML escaping was bypassed.\n\nAn authenticated user with permissions to create or modify vulnerability records, such as a user holding the vulnerability:create or vulnerability:modify permission, could submit a crafted reference tag through the CNA API containing arbitrary HTML or JavaScript-capable markup.\n\nThe malicious value would subsequently be stored as part of the vulnerability record. When another user visited the corresponding public /cve/\u003cid\u003e or /vuln/\u003cid\u003e page, the crafted tag would be rendered as HTML in the viewer\u0027s browser. This could result in JavaScript execution in the security context of the Vulnerability-Lookup application.\n\nSuccessful exploitation could allow an attacker to perform actions in the context of a victim, access information available to the victim\u0027s browser session, or modify page content. As the affected vulnerability pages can be accessed publicly, exploitation may affect users who are not authenticated.\n\nThe issue was corrected by applying markupsafe.escape() to each reference tag before inserting it into the HTML badge markup, while retaining Markup only for the static HTML scaffolding."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-63",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-63 Cross-Site Scripting (XSS)"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.1,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "HIGH",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:L/VI:L/VA:N/SC:H/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-79",
                  "description": "CWE-79 Improper Neutralization of Input During Web Page Generation (XSS or \u0027Cross-site Scripting\u0027)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-12T14:05:39.735Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/d29901655c50cf3c25737d9ea86180268df51b57"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Stored Cross-Site Scripting (XSS) via Unescaped CNA Reference Tags in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-73374",
        "datePublished": "2026-08-12T14:05:39.735Z",
        "dateReserved": "2026-08-12T14:05:33.426Z",
        "dateUpdated": "2026-08-12T17:12:36.380Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-72761 (GCVE-0-2026-72761)

    Vulnerability from cvelistv5 – Published: 2026-08-10 14:33 – Updated: 2026-08-10 17:00
    VLAI
    Title
    Webhook SSRF guard bypassed by IPv6 transition addresses (NAT64/6to4/Teredo pass is_global check) in vulnerability-lookup
    Summary
    The webhook URL validator in `website/notifications/webhooks.py` uses `ip.is_global` to reject non-public addresses after DNS resolution. IPv6 transition addresses (NAT64 `64:ff9b::/96`, 6to4 `2002::/16`, Teredo `2001:0000::/32`) are classified as globally routable by IANA, so `is_global` returns `True` even when the embedded IPv4 targets a private, loopback, or cloud metadata destination. An attacker can register a webhook pointing at a hostname that resolves to a transition address to bypass the SSRF guard and exfiltrate vulnerability data to an internal endpoint. The vulnerability was introduced on a non-release version. The fix was already done on HEAD. It only affects organisation running the HEAD.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-08-10 17:00 UTC
    CWE
    • CWE-918 - Server-Side Request Forgery (SSRF)
    Assigner
    References
    Impacted products
    Vendor Product Version
    vulnerability-lookup vulnerability-lookup Unaffected: 0 , ≤ 5.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-72761",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-08-10T17:00:38.181767Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-08-10T17:00:48.661Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "repo": "https://github.com/vulnerability-lookup/vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "5.5.0",
                  "status": "unaffected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "tonghuaroot"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Cedric Bonhomme"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "The webhook URL validator in `website/notifications/webhooks.py` uses\u003cbr\u003e`ip.is_global` to reject non-public addresses after DNS resolution. IPv6\u003cbr\u003etransition addresses (NAT64 `64:ff9b::/96`, 6to4 `2002::/16`, Teredo\u003cbr\u003e`2001:0000::/32`) are classified as globally routable by IANA, so `is_global`\u003cbr\u003ereturns `True` even when the embedded IPv4 targets a private, loopback, or\u003cbr\u003ecloud metadata destination. An attacker can register a webhook pointing at a\u003cbr\u003ehostname that resolves to a transition address to bypass the SSRF guard and\u003cbr\u003eexfiltrate vulnerability data to an internal endpoint.\u003cbr\u003e\u003cbr\u003e\u003cdiv\u003eThe vulnerability was introduced on a non-release version. The fix was already done on HEAD. It only affects\u003c/div\u003e\u003cdiv\u003eorganisation running the HEAD.\u003c/div\u003e\u003cbr\u003e"
                }
              ],
              "value": "The webhook URL validator in `website/notifications/webhooks.py` uses\n`ip.is_global` to reject non-public addresses after DNS resolution. IPv6\ntransition addresses (NAT64 `64:ff9b::/96`, 6to4 `2002::/16`, Teredo\n`2001:0000::/32`) are classified as globally routable by IANA, so `is_global`\nreturns `True` even when the embedded IPv4 targets a private, loopback, or\ncloud metadata destination. An attacker can register a webhook pointing at a\nhostname that resolves to a transition address to bypass the SSRF guard and\nexfiltrate vulnerability data to an internal endpoint.\n\nThe vulnerability was introduced on a non-release version. The fix was already done on HEAD. It only affects\n\norganisation running the HEAD."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-664",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-664 Server Side Request Forgery"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.9,
                "baseSeverity": "MEDIUM",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:L/VI:N/VA:N/SC:L/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-918",
                  "description": "CWE-918 Server-Side Request Forgery (SSRF)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-08-10T14:33:13.106Z",
            "orgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
            "shortName": "CIRCL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/f3e0c6899c5b3823dcfd860fc6cb3edbedc9bf65"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Webhook SSRF guard bypassed by IPv6 transition addresses (NAT64/6to4/Teredo pass is_global check) in vulnerability-lookup",
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "5a6e4751-2f3f-4070-9419-94fb35b644e8",
        "assignerShortName": "CIRCL",
        "cveId": "CVE-2026-72761",
        "datePublished": "2026-08-10T14:33:13.106Z",
        "dateReserved": "2026-08-10T14:32:19.844Z",
        "dateUpdated": "2026-08-10T17:00:48.661Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    GCVE-1-2026-0014

    Vulnerability from gna-1 – Published: 2026-02-04 19:32 – Updated: 2026-02-04 19:32
    VLAI
    Title
    Missing Authorization Check Allows Unauthorized Modification of Vulnerability Disclosure Reports
    Summary
    A missing authorization check in the /disclosure/edit/<id> POST endpoint allows authenticated users to modify vulnerability disclosure reports submitted by other users. The endpoint did not verify that the authenticated user was the original reporter of the disclosure, resulting in an improper authorization vulnerability. An attacker with a valid account could exploit this issue to edit arbitrary vulnerability disclosure reports by submitting crafted requests. The issue was resolved by enforcing authentication and validating ownership of the disclosure before permitting modifications.
    CWE
    • CWE-287 - Improper Authentication
    Assigner
    References
    Impacted products
    Relationships

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "3.0",
                  "status": "affected"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "nyanbinary \u003c@nyanbinary@infosec.exchange\u003e"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "other",
              "value": "Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "A missing authorization check in the \u003ccode\u003e/disclosure/edit/\u0026lt;id\u0026gt;\u003c/code\u003e POST endpoint allows authenticated users to modify vulnerability disclosure reports submitted by other users. The endpoint did not verify that the authenticated user was the original reporter of the disclosure, resulting in an improper authorization vulnerability. An attacker with a valid account could exploit this issue to edit arbitrary vulnerability disclosure reports by submitting crafted requests. The issue was resolved by enforcing authentication and validating ownership of the disclosure before permitting modifications.\u003cp\u003e\u003c/p\u003e\u003cbr\u003e"
                }
              ],
              "value": "A missing authorization check in the /disclosure/edit/\u003cid\u003e POST endpoint allows authenticated users to modify vulnerability disclosure reports submitted by other users. The endpoint did not verify that the authenticated user was the original reporter of the disclosure, resulting in an improper authorization vulnerability. An attacker with a valid account could exploit this issue to edit arbitrary vulnerability disclosure reports by submitting crafted requests. The issue was resolved by enforcing authentication and validating ownership of the disclosure before permitting modifications."
            }
          ],
          "impacts": [
            {
              "descriptions": [
                {
                  "lang": "en"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "YES",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "HIGH",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 7.4,
                "baseSeverity": "HIGH",
                "privilegesRequired": "NONE",
                "providerUrgency": "CLEAR",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:A/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N/AU:Y/U:Clear",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287 Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "orgId": "00000000-0000-4000-9000-000000000000"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/1771b42ac05a833e2bf1d7743c6ad3d7e0d12920"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Missing Authorization Check Allows Unauthorized Modification of Vulnerability Disclosure Reports",
          "x_gcve": [
            {
              "recordType": "advisory",
              "vulnId": "gcve-1-2026-0014"
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "00000000-0000-4000-9000-000000000000",
        "datePublished": "2026-02-04T19:32:14.341383Z",
        "dateUpdated": "2026-02-04T19:32:14.341383Z",
        "requesterUserId": "00000000-0000-4000-9000-000000000000",
        "serial": 1,
        "state": "PUBLISHED",
        "vulnId": "gcve-1-2026-0014",
        "vulnerabilitylookup_history": [
          [
            "alexandre.dulaunoy@circl.lu",
            "2026-02-04T19:32:14.341383Z"
          ]
        ]
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }

    GCVE-1-2026-0013

    Vulnerability from gna-1 – Published: 2026-02-04 19:27 – Updated: 2026-02-04 19:32
    VLAI
    Title
    Flask Application Username Route Collision Allows Reserved Path Registration
    Summary
    A route collision vulnerability exists in a Flask-based web application where parameterized user profile routes (e.g., /user/<login>) coexist with fixed functional routes under the same prefix (e.g., /user/profile, /user/bundles). Due to Flask’s route resolution behavior, attackers could register accounts using usernames matching reserved route paths. By registering such usernames, an attacker could render their profile inaccessible and potentially mask or interfere with legitimate application endpoints, leading to denial of access to functionality and confusion in routing behavior. The vulnerability stems from insufficient validation of usernames during account creation and profile updates. It is mitigated by introducing a case-insensitive reserved username list corresponding to existing /user/ routes and enforcing validation at the form and model layers to prevent registration or use of these reserved identifiers.
    CWE
    • CWE-20 - Improper Input Validation
    Assigner
    References
    Impacted products
    Relationships

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "3.0",
                  "status": "affected"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "nyanbinary \u003c@nyanbinary@infosec.exchange\u003e"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Cedric Bonhomme"
            },
            {
              "lang": "en",
              "type": "other",
              "value": "Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cp\u003eA route collision vulnerability exists in a Flask-based web application where parameterized user profile routes (e.g., \u003ccode\u003e/user/\u0026lt;login\u0026gt;\u003c/code\u003e) coexist with fixed functional routes under the same prefix (e.g., \u003ccode\u003e/user/profile\u003c/code\u003e, \u003ccode\u003e/user/bundles\u003c/code\u003e). Due to Flask\u2019s route resolution behavior, attackers could register accounts using usernames matching reserved route paths.\u003c/p\u003e\n\u003cp\u003eBy registering such usernames, an attacker could render their profile inaccessible and potentially mask or interfere with legitimate application endpoints, leading to denial of access to functionality and confusion in routing behavior.\u003c/p\u003e\n\u003cp\u003eThe vulnerability stems from insufficient validation of usernames during account creation and profile updates. It is mitigated by introducing a case-insensitive reserved username list corresponding to existing \u003ccode\u003e/user/\u003c/code\u003e routes and enforcing validation at the form and model layers to prevent registration or use of these reserved identifiers.\u003c/p\u003e\u003cbr\u003e"
                }
              ],
              "value": "A route collision vulnerability exists in a Flask-based web application where parameterized user profile routes (e.g., /user/\u003clogin\u003e) coexist with fixed functional routes under the same prefix (e.g., /user/profile, /user/bundles). Due to Flask\u2019s route resolution behavior, attackers could register accounts using usernames matching reserved route paths.\n\n\nBy registering such usernames, an attacker could render their profile inaccessible and potentially mask or interfere with legitimate application endpoints, leading to denial of access to functionality and confusion in routing behavior.\n\n\nThe vulnerability stems from insufficient validation of usernames during account creation and profile updates. It is mitigated by introducing a case-insensitive reserved username list corresponding to existing /user/ routes and enforcing validation at the form and model layers to prevent registration or use of these reserved identifiers."
            }
          ],
          "impacts": [
            {
              "descriptions": [
                {
                  "lang": "en"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "YES",
                "Recovery": "NOT_DEFINED",
                "Safety": "NEGLIGIBLE",
                "attackComplexity": "HIGH",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 2.1,
                "baseSeverity": "LOW",
                "privilegesRequired": "NONE",
                "providerUrgency": "CLEAR",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:A/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/S:N/AU:Y/U:Clear",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-20",
                  "description": "CWE-20 Improper Input Validation",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "orgId": "00000000-0000-4000-9000-000000000000"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/ec4c3e70f03e5e711856cf3863c596fab2b707ad"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Flask Application Username Route Collision Allows Reserved Path Registration",
          "x_gcve": [
            {
              "recordType": "advisory",
              "vulnId": "gcve-1-2026-0013"
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "00000000-0000-4000-9000-000000000000",
        "datePublished": "2026-02-04T19:27:00.000Z",
        "dateUpdated": "2026-02-04T19:32:49.787763Z",
        "requesterUserId": "00000000-0000-4000-9000-000000000000",
        "serial": 1,
        "state": "PUBLISHED",
        "vulnId": "gcve-1-2026-0013",
        "vulnerabilitylookup_history": [
          [
            "alexandre.dulaunoy@circl.lu",
            "2026-02-04T19:27:11.142905Z"
          ],
          [
            "alexandre.dulaunoy@circl.lu",
            "2026-02-04T19:32:49.787763Z"
          ]
        ]
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }

    GCVE-1-2026-0012

    Vulnerability from gna-1 – Published: 2026-02-04 19:21 – Updated: 2026-02-04 19:21
    VLAI
    Title
    Authentication Error Message Allows Email Address Enumeration
    Summary
    A user enumeration vulnerability was identified in the authentication logic of the application. When an invalid login was supplied, the system performed an additional check to determine whether the input matched an existing email address and returned a specific error message if so. This behavior allowed unauthenticated attackers to infer whether a given email address was registered, enabling email address enumeration. The issue has been mitigated by removing the email-based check and returning a generic authentication failure message.
    CWE
    • CWE-200 - Exposure of Sensitive Information to an Unauthorized Actor
    Assigner
    References
    Impacted products
    Relationships

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "vulnerability-lookup",
              "vendor": "vulnerability-lookup",
              "versions": [
                {
                  "lessThanOrEqual": "3.0",
                  "status": "affected"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "nyanbinary \u003c@nyanbinary@infosec.exchange\u003e"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Cedric Bonhomme"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "A user enumeration vulnerability was identified in the authentication logic of the application. When an invalid login was supplied, the system performed an additional check to determine whether the input matched an existing email address and returned a specific error message if so. This behavior allowed unauthenticated attackers to infer whether a given email address was registered, enabling email address enumeration. The issue has been mitigated by removing the email-based check and returning a generic authentication failure message."
                }
              ],
              "value": "A user enumeration vulnerability was identified in the authentication logic of the application. When an invalid login was supplied, the system performed an additional check to determine whether the input matched an existing email address and returned a specific error message if so. This behavior allowed unauthenticated attackers to infer whether a given email address was registered, enabling email address enumeration. The issue has been mitigated by removing the email-based check and returning a generic authentication failure message."
            }
          ],
          "impacts": [
            {
              "descriptions": [
                {
                  "lang": "en"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NEGLIGIBLE",
                "attackComplexity": "HIGH",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 2.1,
                "baseSeverity": "LOW",
                "privilegesRequired": "NONE",
                "providerUrgency": "CLEAR",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "ACTIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:H/AT:N/PR:N/UI:A/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N/S:N/U:Clear",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-200",
                  "description": "CWE-200 Exposure of Sensitive Information to an Unauthorized Actor",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "orgId": "00000000-0000-4000-9000-000000000000"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/vulnerability-lookup/vulnerability-lookup/commit/ce2d6e7412f01219f117361472e1ef0ce783bc17"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "Authentication Error Message Allows Email Address Enumeration",
          "x_gcve": [
            {
              "recordType": "advisory",
              "vulnId": "gcve-1-2026-0012"
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 0.2.0"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "00000000-0000-4000-9000-000000000000",
        "datePublished": "2026-02-04T19:21:34.411344Z",
        "dateUpdated": "2026-02-04T19:21:34.411344Z",
        "requesterUserId": "00000000-0000-4000-9000-000000000000",
        "serial": 1,
        "state": "PUBLISHED",
        "vulnId": "gcve-1-2026-0012",
        "vulnerabilitylookup_history": [
          [
            "alexandre.dulaunoy@circl.lu",
            "2026-02-04T19:21:34.411344Z"
          ]
        ]
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }