# pngjs@5.0.0 security report (npm)

- Verdict: **No issues** (risk level: safe)
- Scanned: 2026-10-04T16:54:45.000Z
- Files reviewed: 25
- Findings: 2 low severity findings
- Report: https://security.togoder.click/npm/pngjs
- Source: Togoder Security (https://security.togoder.click), AI source-code review

## Summary

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

## Findings

### [low] unbounded chunk length

Finding ID: `NPS-7AD0162BBE16`

File: `lib/parser.js:72`

Chunk length read at _parseChunkBegin is used directly in read(length + 4, ...) without an upper bound; a malicious PNG declaring an enormous chunk length could drive excessive memory/IO. Not a malicious pattern in itself.

### [low] buffer-overread risk

Finding ID: `NPS-A8C86B2382A7`

File: `lib/parser.js:209`

Several chunk parsers (e.g. _parseTRNS, _parseGAMA, _parseIHDR) read values from chunk data without validating that the declared chunk length matches the required size, which could cause RangeError on malformed input. This is a robustness issue, not a malicious pattern.

## Files reviewed

- `coverage/lcov-report/block-navigation.js` (safe): No malicious patterns detected; this is a standard Istanbul/NYC coverage report UI navigation script with no network, filesystem, process, or dynamic code execution activity.
- `coverage/lcov-report/prettify.js` (safe): This is Google's standard prettify.js syntax highlighting library (bundled in an lcov coverage report), with no malicious patterns such as data exfiltration, credential harvesting, dynamic code execution, or network activity.
- `coverage/lcov-report/sorter.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/bitmapper.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/bitpacker.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/chunkstream.js` (safe): No malicious patterns detected
- `lib/constants.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/crc.js` (safe): No malicious patterns detected; the code is a standard CRC-32 implementation with no network, file system, process, or dynamic execution behavior.
- `lib/filter-pack.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/filter-parse-async.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/filter-parse-sync.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/filter-parse.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/format-normaliser.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/interlace.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/packer-async.js` (safe): No malicious patterns detected; the code is a standard PNG stream packer using Node.js streams and deflate compression.
- `lib/packer-sync.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/packer.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/paeth-predictor.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/parser-async.js` (safe): No malicious patterns detected; this is a standard PNG parser async implementation using Node.js zlib and local modules.
- `lib/parser-sync.js` (safe): No malicious patterns detected
- `lib/parser.js` (safe): This is a standard PNG chunk parser with no data exfiltration, credential harvesting, code execution, network access, process spawning, or install-time behavior; only minor input-validation robustness concerns.
- `lib/png-sync.js` (safe): Cleared by Jev triage; no further analysis needed
- `lib/png.js` (safe): No malicious patterns detected
- `lib/sync-inflate.js` (safe): No malicious patterns detected
- `lib/sync-reader.js` (safe): No malicious patterns detected

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