dependabot / dependabot/dependabot-core

Dependabot alerts incorrectly match npm packages with different casing (JSONPath vs jsonpath)

Open
#14,599 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

L: javascript
Dominant language
Ruby
Stars
5.8k
Forks
1.5k
Avg merge
2d 13h
Merged PRs (30d)
151

Description

Package ecosystem

npm

Description

Dependabot security alerts are incorrectly matching npm packages whose names differ only in casing. npm package names are case-sensitiveJSONPath and jsonpath are two entirely different packages by different authors with different codebases:

JSONPath (uppercase) jsonpath (lowercase)
npm JSONPath jsonpath
Author s3u dchester
GitHub repo s3u/JSONPath dchester/jsonpath
Status Deprecated (moved to jsonpath-plus) Active (~3.8M weekly downloads)

What happened

Repositories that depend on JSONPath (uppercase, by s3u) are receiving Dependabot security alerts for vulnerabilities that only affect jsonpath (lowercase, by dchester):

  • CVE-2025-61140 — Prototype Pollution (CVSS 9.8) in jsonpath
  • CVE-2026-1615 / GHSA-87r5-mp6g-5w5j — Arbitrary Code Injection in jsonpath

These vulnerabilities exist only in the jsonpath package (lowercase, by dchester). The JSONPath package (uppercase, by s3u) is unrelated and unaffected.

How to verify

On a repository that uses JSONPath (uppercase) and receives these alerts:

npm ls jsonpath
# Returns empty — the lowercase package is not installed

yarn why jsonpath
# Returns "We couldn't find a match!"

The lockfile contains JSONPath but does not contain jsonpath. The vulnerable package is simply not in the dependency tree.

Expected behavior

Dependabot should perform case-sensitive matching for npm package names, since npm treats package names as case-sensitive. An advisory filed against jsonpath should not match JSONPath.

Actual behavior

Dependabot appears to normalize npm package names to lowercase (or perform case-insensitive comparison) when matching advisories to lockfile entries, causing false-positive alerts on unrelated packages that differ only in casing.

Prior report

This is the same class of bug reported in #4204 (Sep 2021), where JSON (uppercase) was incorrectly matched against advisories for json (lowercase). In that issue, a maintainer noted the alerting team had been notified and "spotted at least one thing they need to fix," but the issue was closed without a public resolution. The bug appears to still be present.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing npm advisory matching from the lockfile entry through the alert comparison; the issue provides no source file or test path. Reproduce with distinct JSONPath/jsonpath package names and the shown npm and yarn commands, then confirm advisories for jsonpath no longer match JSONPath.

Written by the indexing model from the issue text.

Assessment

Tech stack
javascript
Domain
security, tooling
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.