Common Weakness Enumeration

CWE-480

Allowed

Use of Incorrect Operator

Abstraction: Base · Status: Draft

The product accidentally uses the wrong operator, which changes the logic in security-relevant ways.

14 vulnerabilities reference this CWE, most recent first.

GHSA-C7MR-H37W-H53J

Vulnerability from github – Published: 2025-07-11 18:30 – Updated: 2025-07-11 18:30
VLAI
Details

A Use of Incorrect Operator

vulnerability in the Routing Engine firewall of Juniper Networks Junos OS Evolved allows an unauthenticated, network-based attacker to bypass security restrictions.

When a firewall filter which is applied to the lo0 or re:mgmt interface references a prefix list with 'from prefix-list', and that prefix list contains more than 10 entries, the prefix list doesn't match and packets destined to or from the local device are not filtered.

This issue affects firewall filters applied to the re:mgmt interfaces as input and output, but only affects firewall filters applied to the lo0 interface as output. This issue is applicable to IPv4 and IPv6 as a prefix list can contain IPv4 and IPv6 prefixes. This issue affects Junos OS Evolved:

  • 23.2R2-S3-EVO versions before 23.2R2-S4-EVO,
  • 23.4R2-S3-EVO versions before 23.4R2-S5-EVO,
  • 24.2R2-EVO versions before 24.2R2-S1-EVO,
  • 24.4-EVO versions before 24.4R1-S3-EVO, 24.4R2-EVO.

This issue doesn't not affect Junos OS Evolved versions before 23.2R1-EVO.

Show details on source website

{
  "affected": [],
  "aliases": [
    "CVE-2025-52985"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-480"
    ],
    "github_reviewed": false,
    "github_reviewed_at": null,
    "nvd_published_at": "2025-07-11T16:15:25Z",
    "severity": "MODERATE"
  },
  "details": "A Use of Incorrect Operator\n\nvulnerability in the Routing Engine firewall of Juniper Networks Junos OS Evolved allows an unauthenticated, network-based attacker to bypass security restrictions.\n\nWhen a firewall filter which is applied to the lo0 or re:mgmt interface references a prefix list with \u0027from prefix-list\u0027, and that prefix list contains more than 10 entries, the prefix list doesn\u0027t match and packets destined to or from the local device are not filtered.\n\n\nThis issue affects firewall filters applied to the re:mgmt interfaces as input and output, but only affects firewall filters applied to the lo0 interface as output.\nThis issue is applicable to IPv4 and IPv6 as a prefix list can contain IPv4 and IPv6 prefixes.\nThis issue affects Junos OS Evolved:\n\n  *  23.2R2-S3-EVO versions before 23.2R2-S4-EVO,\n  *  23.4R2-S3-EVO versions before 23.4R2-S5-EVO,\n  *  24.2R2-EVO versions before 24.2R2-S1-EVO,\n  *  24.4-EVO versions before 24.4R1-S3-EVO, 24.4R2-EVO.\n\n\nThis issue doesn\u0027t not affect Junos OS Evolved versions before 23.2R1-EVO.",
  "id": "GHSA-c7mr-h37w-h53j",
  "modified": "2025-07-11T18:30:33Z",
  "published": "2025-07-11T18:30:33Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2025-52985"
    },
    {
      "type": "WEB",
      "url": "https://supportportal.juniper.net/JSA100091"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:L/A:N",
      "type": "CVSS_V3"
    },
    {
      "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:L/VA:N/SC:N/SI:N/SA:N/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X",
      "type": "CVSS_V4"
    }
  ]
}

GHSA-CMC7-MFMR-XQRX

Vulnerability from github – Published: 2021-04-07 21:01 – Updated: 2024-10-21 21:02
VLAI
Summary
Logic error in authentication in proxy.py
Details

before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "PyPI",
        "name": "proxy.py"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "2.3.1"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2021-3116"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-287",
      "CWE-480",
      "CWE-697"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2021-04-06T21:58:49Z",
    "nvd_published_at": "2021-01-11T05:15:00Z",
    "severity": "HIGH"
  },
  "details": "before_upstream_connection in AuthPlugin in http/proxy/auth.py in proxy.py before 2.3.1 accepts incorrect Proxy-Authorization header data because of a boolean confusion (and versus or).",
  "id": "GHSA-cmc7-mfmr-xqrx",
  "modified": "2024-10-21T21:02:47Z",
  "published": "2021-04-07T21:01:25Z",
  "references": [
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2021-3116"
    },
    {
      "type": "WEB",
      "url": "https://github.com/abhinavsingh/proxy.py/pull/482"
    },
    {
      "type": "WEB",
      "url": "https://github.com/abhinavsingh/proxy.py/pull/482/commits/9b00093288237f5073c403f2c4f62acfdfa8ed46"
    },
    {
      "type": "WEB",
      "url": "https://github.com/abhinavsingh/proxy.py/commit/bff171ec26d826ae1d22d2466eaf9d8bdbf059d3"
    },
    {
      "type": "WEB",
      "url": "https://cardaci.xyz/advisories/2021/01/10/proxy.py-2.3.0-broken-basic-authentication"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/abhinavsingh/proxy.py"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/advisories/GHSA-cmc7-mfmr-xqrx"
    },
    {
      "type": "WEB",
      "url": "https://github.com/pypa/advisory-database/tree/main/vulns/proxy-py/PYSEC-2021-46.yaml"
    },
    {
      "type": "WEB",
      "url": "https://pypi.org/project/proxy.py/2.3.1/#history"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:H/A:N",
      "type": "CVSS_V3"
    },
    {
      "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:H/VA:N/SC:N/SI:N/SA:N",
      "type": "CVSS_V4"
    }
  ],
  "summary": "Logic error in authentication in proxy.py"
}

GHSA-CQMQ-8755-7XVH

Vulnerability from github – Published: 2026-08-21 20:55 – Updated: 2026-08-21 20:55
VLAI
Summary
Keystone vulnerable to `graphql.maxTake` bypass with negative `take`
Details

Summary

The value of graphql.maxTake can be bypassed by providing a negative input. This can be used to exceed the developer's intended graphql.maxTake value, allowing queries to return results in excess of the graphql.maxTake value set.

Impact

This affects any project relying on graphql.maxTake to bound the number of items returned per query.

Patches

This issue has been patched in @keystone-6/core version 6.5.3.

If you cannot patch, you can workaround this by restricting take input values in your GraphQL queries to the bounded value, or by blocking negative values.

Credit

This issue was found by Haxset's Security Scanner and validated by their team.

Show details on source website

{
  "affected": [
    {
      "database_specific": {
        "last_known_affected_version_range": "\u003c= 6.5.2"
      },
      "package": {
        "ecosystem": "npm",
        "name": "@keystone-6/core"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "6.5.3"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2026-63421"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-20",
      "CWE-480"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-08-21T20:55:11Z",
    "nvd_published_at": null,
    "severity": "HIGH"
  },
  "details": "# Summary\nThe value of `graphql.maxTake` can be bypassed by providing a negative input.\nThis can be used to exceed the developer\u0027s intended `graphql.maxTake` value, allowing queries to return results in excess of the `graphql.maxTake` value set.\n\n# Impact\nThis affects any project relying on `graphql.maxTake` to bound the number of items returned per query.\n\n# Patches\nThis issue has been patched in `@keystone-6/core` version `6.5.3`.\n\nIf you cannot patch, you can workaround this by restricting `take` input values in your GraphQL queries to the bounded value, or by blocking negative values.\n\n# Credit\nThis issue was found by [Haxset\u0027s](https://haxset.com) Security Scanner and validated by their team.",
  "id": "GHSA-cqmq-8755-7xvh",
  "modified": "2026-08-21T20:55:11Z",
  "published": "2026-08-21T20:55:11Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/keystonejs/keystone/security/advisories/GHSA-cqmq-8755-7xvh"
    },
    {
      "type": "WEB",
      "url": "https://github.com/keystonejs/keystone/pull/9859"
    },
    {
      "type": "WEB",
      "url": "https://github.com/keystonejs/keystone/commit/9fb88b246950ce4de754a43fe6416f20403577b1"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/keystonejs/keystone"
    },
    {
      "type": "WEB",
      "url": "https://github.com/keystonejs/keystone/releases/tag/@keystone-6/core@6.5.3"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "Keystone vulnerable to `graphql.maxTake` bypass with negative `take`"
}

GHSA-CRQM-M339-7M2P

Vulnerability from github – Published: 2026-05-14 16:17 – Updated: 2026-05-14 16:17
VLAI
Summary
pyzipper has an encryption bypass for small files encrypted using it
Details

Impact

A Python operator precedence bug in pyzipper/zipfile_aes.py caused the AE-2 format to never be automatically selected during encryption, regardless of file size or compression type. As a result, all encrypted entries are written in AE-1 format unless AE-2 is explicitly forced by the caller. AE-1 stores the plaintext CRC32 checksum unencrypted in the ZIP header. During investigation of this issue, it was also found that when writing to an unseekable zip archive, the CRC32 value was always written to the datadescripter section.

The AES encryption itself is not broken. An attacker who possesses the archive can read the CRC32 from the header without decrypting anything, then brute-force candidate plaintexts by computing CRC32(candidate) and comparing against the stored value. In practice, this attack is feasible today only against small or low-entropy files, as CRC32 exhaustion across a large plaintext space is computationally prohibitive on current hardware. Files with high-entropy or large content are not practically at risk under current computing constraints. Without this bug, pyzipper would have removed the CRC32 value for any file with content of less than 20 bytes uncompressed.

Patches

Upgrade to pyzipper 0.4.0 that changes the default behaviour of pyzipper to always use the AE-2 format and exclude the CRC32 values, unless instructed to do otherwise.

If rewriting the zip archive to remove the CRC values for small files, the entire zip archive should be recreated to avoid the original local file header with the CRC included remaining in the zip file in a detached state.

Credit

Thanks to Lucas Lavarello from Kulkan Security for identifying this issue.

References

https://www.winzip.com/en/support/aes-encryption/#CRC https://www.winzip.com/en/support/aes-encryption/#crc-faq

Show details on source website

{
  "affected": [
    {
      "package": {
        "ecosystem": "PyPI",
        "name": "pyzipper"
      },
      "ranges": [
        {
          "events": [
            {
              "introduced": "0"
            },
            {
              "fixed": "0.4.0"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "aliases": [
    "CVE-2026-44722"
  ],
  "database_specific": {
    "cwe_ids": [
      "CWE-480"
    ],
    "github_reviewed": true,
    "github_reviewed_at": "2026-05-14T16:17:01Z",
    "nvd_published_at": null,
    "severity": "MODERATE"
  },
  "details": "### Impact\nA Python operator precedence bug in pyzipper/zipfile_aes.py caused the AE-2 format to never be automatically selected during encryption, regardless of file size or compression type. As a result, all encrypted entries are written in AE-1 format unless AE-2 is explicitly forced by the caller. AE-1 stores the plaintext CRC32 checksum unencrypted in the ZIP header. During investigation of this issue, it was also found that when writing to an unseekable zip archive, the CRC32 value was always written to the datadescripter section.\n\nThe AES encryption itself is not broken. An attacker who possesses the archive can read the CRC32 from the header without decrypting anything, then brute-force candidate plaintexts by computing CRC32(candidate) and comparing against the stored value. In practice, this attack is feasible today only against small or low-entropy files, as CRC32 exhaustion across a large plaintext space is computationally prohibitive on current hardware. Files with high-entropy or large content are not practically at risk under current computing constraints. Without this bug, pyzipper would have removed the CRC32 value for any file with content of less than 20 bytes uncompressed.\n\n### Patches\nUpgrade to pyzipper 0.4.0 that changes the default behaviour of pyzipper to always use the AE-2 format and exclude the CRC32 values, unless instructed to do otherwise.\n\nIf rewriting the zip archive to remove the CRC values for small files, the entire zip archive should be recreated to avoid the original local file header with the CRC included remaining in the zip file in a detached state.\n\n## Credit\nThanks to Lucas Lavarello from Kulkan Security for identifying this issue.\n\n### References\nhttps://www.winzip.com/en/support/aes-encryption/#CRC\nhttps://www.winzip.com/en/support/aes-encryption/#crc-faq",
  "id": "GHSA-crqm-m339-7m2p",
  "modified": "2026-05-14T16:17:01Z",
  "published": "2026-05-14T16:17:01Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://github.com/danifus/pyzipper/security/advisories/GHSA-crqm-m339-7m2p"
    },
    {
      "type": "PACKAGE",
      "url": "https://github.com/danifus/pyzipper"
    },
    {
      "type": "WEB",
      "url": "https://github.com/danifus/pyzipper/releases/tag/v0.4.0"
    }
  ],
  "schema_version": "1.4.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N",
      "type": "CVSS_V3"
    }
  ],
  "summary": "pyzipper has an encryption bypass for small files encrypted using it"
}

No mitigation information available for this CWE.

No CAPEC attack patterns related to this CWE.