Search

Find a vulnerability

Search criteria

    2 vulnerabilities by walinejs

    CVE-2026-55369 (GCVE-0-2026-55369)

    Vulnerability from nvd – Published: 2026-10-28 12:56 – Updated: 2026-11-02 20:14
    VLAI
    Title
    Waline login accepts a non-string email as a match-all MongoDB query
    Summary
    Waline is a comment system with backend support. Prior to version 1.41.1, the login endpoint POST /api/token reads the email field from the request body without checking its type and passes it straight into the MongoDB storage query. When email is not a string (for example a JSON object such as {"$ne": null}), the MongoDB storage adapter's parseWhere silently DROPS the field rather than rejecting the request, producing an empty filter that matches ALL users. The endpoint then verifies the submitted password against the FIRST user returned (user[0]), which in Waline is the first-registered user — the site administrator. This is a PARTIAL authentication bypass, not a full one. The attacker still needs a valid password for that first user; this is not a zero-knowledge bypass and it does not disclose passwords. Its concrete effects are: (1) the email/identifier factor is removed for the administrator account, (2) user enumeration (a non-string email never fails the "no such user" branch), and (3) credential-stuffing amplification — an attacker can test a leaked or weak password against the administrator account without knowing the administrator's email. This issue has been patched in version 1.41.1.
    SSVC
    Exploitation: poc Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-11-02 20:14 UTC
    CWE
    • CWE-287 - Improper Authentication
    • CWE-943 - Improper Neutralization of Special Elements in Data Query Logic
    Assigner
    GitHub_M CNA under the mitre root
    CNA scorecard C 72/100 over 7836 records in the last 180 days details
    Impacted products
    Vendor Product Version
    walinejs waline Affected: <= 1.40.3
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-55369",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-11-02T20:14:24.829141Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-11-02T20:14:55.849Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/walinejs/waline/security/advisories/GHSA-jf75-q64q-g65r"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "waline",
              "vendor": "walinejs",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c= 1.40.3"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Waline is a comment system with backend support. Prior to version 1.41.1, the login endpoint POST /api/token reads the email field from the request body without checking its type and passes it straight into the MongoDB storage query. When email is not a string (for example a JSON object such as {\"$ne\": null}), the MongoDB storage adapter\u0027s parseWhere silently DROPS the field rather than rejecting the request, producing an empty filter that matches ALL users. The endpoint then verifies the submitted password against the FIRST user returned (user[0]), which in Waline is the first-registered user \u2014 the site administrator. This is a PARTIAL authentication bypass, not a full one. The attacker still needs a valid password for that first user; this is not a zero-knowledge bypass and it does not disclose passwords. Its concrete effects are: (1) the email/identifier factor is removed for the administrator account, (2) user enumeration (a non-string email never fails the \"no such user\" branch), and (3) credential-stuffing amplification \u2014 an attacker can test a leaked or weak password against the administrator account without knowing the administrator\u0027s email. This issue has been patched in version 1.41.1."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "NONE",
                "baseScore": 6.5,
                "baseSeverity": "MEDIUM",
                "confidentialityImpact": "LOW",
                "integrityImpact": "LOW",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N",
                "version": "3.1"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287: Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-943",
                  "description": "CWE-943: Improper Neutralization of Special Elements in Data Query Logic",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-28T12:56:15.822Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/walinejs/waline/security/advisories/GHSA-jf75-q64q-g65r",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/walinejs/waline/security/advisories/GHSA-jf75-q64q-g65r"
            },
            {
              "name": "https://github.com/walinejs/waline/pull/3646",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/walinejs/waline/pull/3646"
            },
            {
              "name": "https://github.com/walinejs/waline/commit/e611aed4e571c2a86103f5cee48791ca6b460360",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/walinejs/waline/commit/e611aed4e571c2a86103f5cee48791ca6b460360"
            }
          ],
          "source": {
            "advisory": "GHSA-jf75-q64q-g65r",
            "discovery": "UNKNOWN"
          },
          "title": "Waline login accepts a non-string email as a match-all MongoDB query"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2026-55369",
        "datePublished": "2026-10-28T12:56:15.822Z",
        "dateReserved": "2026-06-16T18:57:40.181Z",
        "dateUpdated": "2026-11-02T20:14:55.849Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-55369 (GCVE-0-2026-55369)

    Vulnerability from cvelistv5 – Published: 2026-10-28 12:56 – Updated: 2026-11-02 20:14
    VLAI
    Title
    Waline login accepts a non-string email as a match-all MongoDB query
    Summary
    Waline is a comment system with backend support. Prior to version 1.41.1, the login endpoint POST /api/token reads the email field from the request body without checking its type and passes it straight into the MongoDB storage query. When email is not a string (for example a JSON object such as {"$ne": null}), the MongoDB storage adapter's parseWhere silently DROPS the field rather than rejecting the request, producing an empty filter that matches ALL users. The endpoint then verifies the submitted password against the FIRST user returned (user[0]), which in Waline is the first-registered user — the site administrator. This is a PARTIAL authentication bypass, not a full one. The attacker still needs a valid password for that first user; this is not a zero-knowledge bypass and it does not disclose passwords. Its concrete effects are: (1) the email/identifier factor is removed for the administrator account, (2) user enumeration (a non-string email never fails the "no such user" branch), and (3) credential-stuffing amplification — an attacker can test a leaked or weak password against the administrator account without knowing the administrator's email. This issue has been patched in version 1.41.1.
    SSVC
    Exploitation: poc Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-11-02 20:14 UTC
    CWE
    • CWE-287 - Improper Authentication
    • CWE-943 - Improper Neutralization of Special Elements in Data Query Logic
    Assigner
    GitHub_M CNA under the mitre root
    CNA scorecard C 72/100 over 7836 records in the last 180 days details
    Impacted products
    Vendor Product Version
    walinejs waline Affected: <= 1.40.3
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-55369",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-11-02T20:14:24.829141Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-11-02T20:14:55.849Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/walinejs/waline/security/advisories/GHSA-jf75-q64q-g65r"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "waline",
              "vendor": "walinejs",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c= 1.40.3"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Waline is a comment system with backend support. Prior to version 1.41.1, the login endpoint POST /api/token reads the email field from the request body without checking its type and passes it straight into the MongoDB storage query. When email is not a string (for example a JSON object such as {\"$ne\": null}), the MongoDB storage adapter\u0027s parseWhere silently DROPS the field rather than rejecting the request, producing an empty filter that matches ALL users. The endpoint then verifies the submitted password against the FIRST user returned (user[0]), which in Waline is the first-registered user \u2014 the site administrator. This is a PARTIAL authentication bypass, not a full one. The attacker still needs a valid password for that first user; this is not a zero-knowledge bypass and it does not disclose passwords. Its concrete effects are: (1) the email/identifier factor is removed for the administrator account, (2) user enumeration (a non-string email never fails the \"no such user\" branch), and (3) credential-stuffing amplification \u2014 an attacker can test a leaked or weak password against the administrator account without knowing the administrator\u0027s email. This issue has been patched in version 1.41.1."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "NONE",
                "baseScore": 6.5,
                "baseSeverity": "MEDIUM",
                "confidentialityImpact": "LOW",
                "integrityImpact": "LOW",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:N",
                "version": "3.1"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287: Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-943",
                  "description": "CWE-943: Improper Neutralization of Special Elements in Data Query Logic",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-28T12:56:15.822Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/walinejs/waline/security/advisories/GHSA-jf75-q64q-g65r",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/walinejs/waline/security/advisories/GHSA-jf75-q64q-g65r"
            },
            {
              "name": "https://github.com/walinejs/waline/pull/3646",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/walinejs/waline/pull/3646"
            },
            {
              "name": "https://github.com/walinejs/waline/commit/e611aed4e571c2a86103f5cee48791ca6b460360",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/walinejs/waline/commit/e611aed4e571c2a86103f5cee48791ca6b460360"
            }
          ],
          "source": {
            "advisory": "GHSA-jf75-q64q-g65r",
            "discovery": "UNKNOWN"
          },
          "title": "Waline login accepts a non-string email as a match-all MongoDB query"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2026-55369",
        "datePublished": "2026-10-28T12:56:15.822Z",
        "dateReserved": "2026-06-16T18:57:40.181Z",
        "dateUpdated": "2026-11-02T20:14:55.849Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }