# lru-cache@11.5.3 security report (npm)

- Verdict: **No issues** (risk level: safe)
- Scanned: 2026-10-04T21:18:02.000Z
- Files reviewed: 24
- Findings: 16 low severity findings
- Report: https://security.togoder.click/npm/lru-cache@11.5.3
- Source: Togoder Security (https://security.togoder.click), AI source-code review

## Summary

Togoder Security scanned the npm package lru-cache@11.5.3 on Oct 4, 2026. An AI review of 24 source files produced 16 low severity findings. No malicious behavior, install-time payloads, credential theft or exfiltration were identified.

## Findings

### [low] process.emitWarning usage

Finding ID: `NPS-A437F49CE21C`

File: `dist/esm/browser/index.js:15`

Uses process.emitWarning for deprecation/warning messages, which is a benign Node.js API. It checks for the existence of the method before calling it, avoiding errors in non-Node environments.

### [low] dynamic property access via unsafeExposeInternals

Finding ID: `NPS-9742A1D76FD5`

File: `dist/esm/browser/index.js:180`

Static method unsafeExposeInternals(c) returns internal private fields for testing/debugging purposes. It explicitly warns that modifying returned objects may cause breakage. No external data is leaked or exfiltrated.

### [low] unref timers

Finding ID: `NPS-67909FCCF4A4`

File: `dist/esm/browser/index.js:590`

Calls clearTimeout and setTimeout for TTL autopurge timers, and uses t.unref() to avoid keeping the Node.js event loop alive. This is standard practice for background timers and not malicious.

### [low] AbortController usage

Finding ID: `NPS-45657845892B`

File: `dist/esm/browser/index.js:1180`

Uses AbortController to cancel background fetch operations and propagate abort signals. This is a standard web/Node API for cancellation, not a security concern.

### [low] process.emitWarning usage

Finding ID: `NPS-A437F49CE21C`

File: `dist/esm/index.js:15`

Uses process.emitWarning for deprecation/warning messages, which is a benign Node.js API. It checks for the existence of the method before calling it, avoiding errors in non-Node environments.

### [low] dynamic property access via unsafeExposeInternals

Finding ID: `NPS-9742A1D76FD5`

File: `dist/esm/index.js:180`

Static method unsafeExposeInternals(c) returns internal private fields for testing/debugging purposes. It explicitly warns that modifying returned objects may cause breakage. No external data is leaked or exfiltrated.

### [low] unref timers

Finding ID: `NPS-67909FCCF4A4`

File: `dist/esm/index.js:590`

Calls clearTimeout and setTimeout for TTL autopurge timers, and uses t.unref() to avoid keeping the Node.js event loop alive. This is standard practice for background timers and not malicious.

### [low] AbortController usage

Finding ID: `NPS-45657845892B`

File: `dist/esm/index.js:1180`

Uses AbortController to cancel background fetch operations and propagate abort signals. This is a standard web/Node API for cancellation, not a security concern.

### [low] process.emitWarning usage

Finding ID: `NPS-A437F49CE21C`

File: `dist/esm/node/index.js:15`

Uses process.emitWarning for deprecation/warning messages, which is a benign Node.js API. It checks for the existence of the method before calling it, avoiding errors in non-Node environments.

### [low] dynamic property access via unsafeExposeInternals

Finding ID: `NPS-9742A1D76FD5`

File: `dist/esm/node/index.js:180`

Static method unsafeExposeInternals(c) returns internal private fields for testing/debugging purposes. It explicitly warns that modifying returned objects may cause breakage. No external data is leaked or exfiltrated.

### [low] unref timers

Finding ID: `NPS-67909FCCF4A4`

File: `dist/esm/node/index.js:590`

Calls clearTimeout and setTimeout for TTL autopurge timers, and uses t.unref() to avoid keeping the Node.js event loop alive. This is standard practice for background timers and not malicious.

### [low] AbortController usage

Finding ID: `NPS-45657845892B`

File: `dist/esm/node/index.js:1180`

Uses AbortController to cancel background fetch operations and propagate abort signals. This is a standard web/Node API for cancellation, not a security concern.

### [low] process.emitWarning usage

Finding ID: `NPS-A437F49CE21C`

File: `dist/esm/react-native/index.js:15`

Uses process.emitWarning for deprecation/warning messages, which is a benign Node.js API. It checks for the existence of the method before calling it, avoiding errors in non-Node environments.

### [low] dynamic property access via unsafeExposeInternals

Finding ID: `NPS-9742A1D76FD5`

File: `dist/esm/react-native/index.js:180`

Static method unsafeExposeInternals(c) returns internal private fields for testing/debugging purposes. It explicitly warns that modifying returned objects may cause breakage. No external data is leaked or exfiltrated.

### [low] unref timers

Finding ID: `NPS-67909FCCF4A4`

File: `dist/esm/react-native/index.js:590`

Calls clearTimeout and setTimeout for TTL autopurge timers, and uses t.unref() to avoid keeping the Node.js event loop alive. This is standard practice for background timers and not malicious.

### [low] AbortController usage

Finding ID: `NPS-45657845892B`

File: `dist/esm/react-native/index.js:1180`

Uses AbortController to cancel background fetch operations and propagate abort signals. This is a standard web/Node API for cancellation, not a security concern.

## Files reviewed

- `dist/commonjs/browser/diagnostics-channel.js` (safe): No malicious patterns detected
- `dist/commonjs/browser/index.js` (safe): No malicious patterns detected; this is a standard LRU cache implementation with no data exfiltration, credential harvesting, obfuscation, or suspicious process/network activity.
- `dist/commonjs/browser/perf.js` (safe): No malicious patterns detected; the code simply selects performance.now if available, otherwise falls back to Date.
- `dist/commonjs/diagnostics-channel.js` (safe): No malicious patterns detected
- `dist/commonjs/index.js` (safe): No malicious patterns detected; this is a standard LRU cache implementation with no data exfiltration, credential harvesting, obfuscation, or suspicious process/network activity.
- `dist/commonjs/node/diagnostics-channel.js` (safe): This file only imports Node.js built-in diagnostics_channel to expose metrics and tracing channels, with no malicious patterns detected.
- `dist/commonjs/node/index.js` (safe): No malicious patterns detected; this is a standard LRU cache implementation with no data exfiltration, credential harvesting, obfuscation, or suspicious process/network activity.
- `dist/commonjs/node/perf.js` (safe): No malicious patterns detected; the code simply selects performance.now if available, otherwise falls back to Date.
- `dist/commonjs/perf.js` (safe): No malicious patterns detected; the code simply selects performance.now if available, otherwise falls back to Date.
- `dist/commonjs/react-native/diagnostics-channel.js` (safe): No malicious patterns detected
- `dist/commonjs/react-native/index.js` (safe): No malicious patterns detected; this is a standard LRU cache implementation with no data exfiltration, credential harvesting, obfuscation, or suspicious process/network activity.
- `dist/commonjs/react-native/perf.js` (safe): No malicious patterns detected; the code simply selects performance.now if available, otherwise falls back to Date.
- `dist/esm/browser/diagnostics-channel.js` (safe): No malicious patterns detected
- `dist/esm/browser/index.js` (safe): The code implements an LRU cache with TTL and background fetch support; it contains no exfiltration, credential harvesting, obfuscation, shell execution, or other malicious patterns.
- `dist/esm/browser/perf.js` (safe): Cleared by Jev triage; no further analysis needed
- `dist/esm/diagnostics-channel.js` (safe): This is a benign polyfill for node:diagnostics_channel that gracefully falls back to a no-op stub when the module is unavailable, with no malicious patterns detected.
- `dist/esm/index.js` (safe): The code implements an LRU cache with TTL and background fetch support; it contains no exfiltration, credential harvesting, obfuscation, shell execution, or other malicious patterns.
- `dist/esm/node/diagnostics-channel.js` (safe): Cleared by Jev triage; no further analysis needed
- `dist/esm/node/index.js` (safe): The code implements an LRU cache with TTL and background fetch support; it contains no exfiltration, credential harvesting, obfuscation, shell execution, or other malicious patterns.
- `dist/esm/node/perf.js` (safe): Cleared by Jev triage; no further analysis needed
- `dist/esm/perf.js` (safe): Cleared by Jev triage; no further analysis needed
- `dist/esm/react-native/diagnostics-channel.js` (safe): No malicious patterns detected
- `dist/esm/react-native/index.js` (safe): The code implements an LRU cache with TTL and background fetch support; it contains no exfiltration, credential harvesting, obfuscation, shell execution, or other malicious patterns.
- `dist/esm/react-native/perf.js` (safe): Cleared by Jev triage; no further analysis needed

## Version ranges

None of the 6 scanned versions of lru-cache are flagged high or critical. The latest scanned version, 11.5.3, is clean. Only versions we have scanned are listed; unscanned versions between them are not covered.

- 11.2.6 – 11.5.3 (`>=11.2.6 <=11.5.3`): clean
- 11.2.5 (`11.2.5`): not scanned
- 10.4.3 (`10.4.3`): clean
- 7.18.3 (`7.18.3`): not scanned
- 5.1.1 – 6.0.0 (`>=5.1.1 <=6.0.0`): clean

## Scanned versions

- [11.5.3](https://security.togoder.click/npm/lru-cache@11.5.3): safe, 2026-10-04T21:18:02.000Z
- [11.5.1](https://security.togoder.click/npm/lru-cache@11.5.1): safe, 2026-10-06T14:23:19.000Z
- [11.2.6](https://security.togoder.click/npm/lru-cache@11.2.6): safe, 2026-10-06T14:16:53.000Z
- [10.4.3](https://security.togoder.click/npm/lru-cache@10.4.3): safe, 2026-10-04T16:35:02.000Z
- [6.0.0](https://security.togoder.click/npm/lru-cache@6.0.0): safe, 2026-10-06T14:23:38.000Z
- [5.1.1](https://security.togoder.click/npm/lru-cache@5.1.1): safe, 2026-10-06T14:10:41.000Z

AI analysis is guidance, not a guarantee. Methodology: https://security.togoder.click/methodology
