Togoder security

npm package security report

yaml@2.9.1 security report

Risky patterns found that deserve a look.

Needs review Version 2.9.1 Files reviewed 151 Size 567.8 KB Scanned

Summary

Togoder Security scanned the npm package yaml@2.9.1 on Oct 4, 2026. An AI review of 151 source files produced 1 medium severity finding. The overall verdict is medium: the findings flag risky but common patterns (dynamic code, unsafe defaults, broad file or network access) rather than confirmed malware.

0
critical
0
high
1
medium
0
low

Findings 1

medium

Dynamic import with user-controlled path

NPS-650301DADFC3

The '--visit' option allows importing an arbitrary module from a path provided by the user via 'await import(resolve(opt.visit))'. This is a dynamic import of an external, computed path. While it is an intentional documented feature of this CLI for applying visitor functions to YAML documents, it can be exploited if untrusted arguments are passed to the CLI (e.g., in a wrapper/shell context), leading to arbitrary code execution from a local file the attacker can place.

dist/cli.mjs:110

Files reviewed

FileVerdictWhat the reviewer saw
dist/cli.mjs medium The code is the official yaml package CLI and contains no exfiltration, credential harvesting, or malicious behavior, but exposes a documented dynamic import of a user-supplied path that could be abused if arguments are attacker-controlled.
bin.mjs safe No malicious patterns detected
browser/dist/compose/compose-collection.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/compose-doc.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/compose-node.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/compose-scalar.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/composer.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/resolve-block-map.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/resolve-block-scalar.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/resolve-block-seq.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/resolve-end.js safe No malicious patterns detected
browser/dist/compose/resolve-flow-collection.js safe This file is a legitimate YAML flow collection parser from the yaml npm package with no malicious patterns, network calls, command execution, or credential harvesting.
browser/dist/compose/resolve-flow-scalar.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/resolve-props.js safe No malicious patterns detected in this YAML parser utility function.
browser/dist/compose/util-contains-newline.js safe No malicious patterns detected; the code is a pure utility function for detecting newlines in YAML key nodes.
browser/dist/compose/util-empty-scalar-position.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/util-flow-indent-check.js safe Cleared by Jev triage; no further analysis needed
browser/dist/compose/util-map-includes.js safe Cleared by Jev triage; no further analysis needed
browser/dist/doc/Document.js safe No malicious patterns detected
browser/dist/doc/anchors.js safe Cleared by Jev triage; no further analysis needed
browser/dist/doc/applyReviver.js safe No malicious patterns detected; the code is a legitimate implementation of JSON.parse reviver logic with Map/Set extensions and performs no external I/O, dynamic execution, or system access.
browser/dist/doc/createNode.js safe No malicious patterns detected; the code is a legitimate YAML node creation utility without exfiltration, credential harvesting, obfuscation, or process execution.
browser/dist/doc/directives.js safe Cleared by Jev triage; no further analysis needed
browser/dist/errors.js safe No malicious patterns detected
browser/dist/index.js safe Cleared by Jev triage; no further analysis needed
Show 126 more files
FileVerdictWhat the reviewer saw
browser/dist/log.js safe Cleared by Jev triage; no further analysis needed
browser/dist/nodes/Alias.js safe No malicious patterns detected; the code implements YAML alias resolution with standard resource-exhaustion safeguards.
browser/dist/nodes/Collection.js safe Cleared by Jev triage; no further analysis needed
browser/dist/nodes/Node.js safe No malicious patterns detected
browser/dist/nodes/Pair.js safe Cleared by Jev triage; no further analysis needed
browser/dist/nodes/Scalar.js safe Cleared by Jev triage; no further analysis needed
browser/dist/nodes/YAMLMap.js safe Cleared by Jev triage; no further analysis needed
browser/dist/nodes/YAMLSeq.js safe Cleared by Jev triage; no further analysis needed
browser/dist/nodes/addPairToJSMap.js safe Cleared by Jev triage; no further analysis needed
browser/dist/nodes/identity.js safe No malicious patterns detected; the file only contains YAML node type identification utilities using Symbols and type-guard functions.
browser/dist/nodes/toJS.js safe The provided toJS.js file is a benign recursive conversion utility with no malicious patterns, network calls, file system access, or dynamic code execution.
browser/dist/parse/cst-scalar.js safe Cleared by Jev triage; no further analysis needed
browser/dist/parse/cst-stringify.js safe Cleared by Jev triage; no further analysis needed
browser/dist/parse/cst-visit.js safe Cleared by Jev triage; no further analysis needed
browser/dist/parse/cst.js safe Cleared by Jev triage; no further analysis needed
browser/dist/parse/lexer.js safe Cleared by Jev triage; no further analysis needed
browser/dist/parse/line-counter.js safe Cleared by Jev triage; no further analysis needed
browser/dist/parse/parser.js safe Cleared by Jev triage; no further analysis needed
browser/dist/public-api.js safe No malicious patterns detected
browser/dist/schema/Schema.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/common/map.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/common/null.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/common/seq.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/common/string.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/core/bool.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/core/float.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/core/int.js safe No malicious patterns detected; the code only implements integer parsing/stringification for YAML schemas without network, filesystem, process, or dynamic execution behavior.
browser/dist/schema/core/schema.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/json/schema.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/tags.js safe No malicious patterns detected; the file only defines YAML schema/tag mappings and a lookup helper.
browser/dist/schema/yaml-1.1/binary.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/yaml-1.1/bool.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/yaml-1.1/float.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/yaml-1.1/int.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/yaml-1.1/merge.js safe No malicious patterns detected; the file implements YAML 1.1 merge key (<<) semantics for a public YAML library with no network, filesystem, process, or dynamic code execution behavior.
browser/dist/schema/yaml-1.1/omap.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/yaml-1.1/pairs.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/yaml-1.1/schema.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/yaml-1.1/set.js safe Cleared by Jev triage; no further analysis needed
browser/dist/schema/yaml-1.1/timestamp.js safe Cleared by Jev triage; no further analysis needed
browser/dist/stringify/foldFlowLines.js safe Cleared by Jev triage; no further analysis needed
browser/dist/stringify/stringify.js safe Cleared by Jev triage; no further analysis needed
browser/dist/stringify/stringifyCollection.js safe Cleared by Jev triage; no further analysis needed
browser/dist/stringify/stringifyComment.js safe Cleared by Jev triage; no further analysis needed
browser/dist/stringify/stringifyDocument.js safe Cleared by Jev triage; no further analysis needed
browser/dist/stringify/stringifyNumber.js safe No malicious patterns detected
browser/dist/stringify/stringifyPair.js safe Cleared by Jev triage; no further analysis needed
browser/dist/stringify/stringifyString.js safe Cleared by Jev triage; no further analysis needed
browser/dist/util.js safe Cleared by Jev triage; no further analysis needed
browser/dist/visit.js safe Cleared by Jev triage; no further analysis needed
browser/index.js safe Cleared by Jev triage; no further analysis needed
dist/compose/compose-collection.js safe Cleared by Jev triage; no further analysis needed
dist/compose/compose-doc.js safe Cleared by Jev triage; no further analysis needed
dist/compose/compose-node.js safe Cleared by Jev triage; no further analysis needed
dist/compose/compose-scalar.js safe Cleared by Jev triage; no further analysis needed
dist/compose/composer.js safe No malicious patterns detected; the code is a standard YAML parser composer with no network, process, or credential access.
dist/compose/resolve-block-map.js safe Cleared by Jev triage; no further analysis needed
dist/compose/resolve-block-scalar.js safe Cleared by Jev triage; no further analysis needed
dist/compose/resolve-block-seq.js safe Cleared by Jev triage; no further analysis needed
dist/compose/resolve-end.js safe Cleared by Jev triage; no further analysis needed
dist/compose/resolve-flow-collection.js safe No malicious patterns detected; the code is a legitimate YAML flow collection parser from the yaml package.
dist/compose/resolve-flow-scalar.js safe Cleared by Jev triage; no further analysis needed
dist/compose/resolve-props.js safe Cleared by Jev triage; no further analysis needed
dist/compose/util-contains-newline.js safe Cleared by Jev triage; no further analysis needed
dist/compose/util-empty-scalar-position.js safe Cleared by Jev triage; no further analysis needed
dist/compose/util-flow-indent-check.js safe Cleared by Jev triage; no further analysis needed
dist/compose/util-map-includes.js safe Cleared by Jev triage; no further analysis needed
dist/doc/Document.js safe No malicious patterns detected; this is a legitimate YAML Document class implementation from the 'yaml' package.
dist/doc/anchors.js safe Cleared by Jev triage; no further analysis needed
dist/doc/applyReviver.js safe No malicious patterns detected; the code implements a standard JSON.parse reviver algorithm with Map/Set support and contains no network, filesystem, process, or dynamic execution activity.
dist/doc/createNode.js safe No malicious patterns detected; the code is a standard YAML node creation utility with no network, filesystem, or dynamic execution risks.
dist/doc/directives.js safe Cleared by Jev triage; no further analysis needed
dist/errors.js safe Cleared by Jev triage; no further analysis needed
dist/index.js safe No malicious patterns detected
dist/log.js safe Cleared by Jev triage; no further analysis needed
dist/nodes/Alias.js safe This is a legitimate YAML alias conformance file from the yaml package with no malicious patterns; the alias-count resolution logic is a defensive measure against resource exhaustion attacks.
dist/nodes/Collection.js safe Cleared by Jev triage; no further analysis needed
dist/nodes/Node.js safe Cleared by Jev triage; no further analysis needed
dist/nodes/Pair.js safe Cleared by Jev triage; no further analysis needed
dist/nodes/Scalar.js safe Cleared by Jev triage; no further analysis needed
dist/nodes/YAMLMap.js safe Cleared by Jev triage; no further analysis needed
dist/nodes/YAMLSeq.js safe Cleared by Jev triage; no further analysis needed
dist/nodes/addPairToJSMap.js safe Cleared by Jev triage; no further analysis needed
dist/nodes/identity.js safe No malicious patterns detected; the file contains only YAML node type identity helpers and exports.
dist/nodes/toJS.js safe Cleared by Jev triage; no further analysis needed
dist/parse/cst-scalar.js safe Cleared by Jev triage; no further analysis needed
dist/parse/cst-stringify.js safe Cleared by Jev triage; no further analysis needed
dist/parse/cst-visit.js safe Cleared by Jev triage; no further analysis needed
dist/parse/cst.js safe Cleared by Jev triage; no further analysis needed
dist/parse/lexer.js safe Cleared by Jev triage; no further analysis needed
dist/parse/line-counter.js safe Cleared by Jev triage; no further analysis needed
dist/parse/parser.js safe No malicious patterns detected; this is a legitimate YAML CST parser with only a debug logging check via process.env.LOG_TOKENS.
dist/public-api.js safe No malicious patterns detected; this is the standard public API entry point of the yaml npm package, which only defines YAML parsing/stringifying functions with no network, filesystem, process, credential, or code-execution behavior.
dist/schema/Schema.js safe Cleared by Jev triage; no further analysis needed
dist/schema/common/map.js safe Cleared by Jev triage; no further analysis needed
dist/schema/common/null.js safe Cleared by Jev triage; no further analysis needed
dist/schema/common/seq.js safe Cleared by Jev triage; no further analysis needed
dist/schema/common/string.js safe Cleared by Jev triage; no further analysis needed
dist/schema/core/bool.js safe Cleared by Jev triage; no further analysis needed
dist/schema/core/float.js safe Cleared by Jev triage; no further analysis needed
dist/schema/core/int.js safe Cleared by Jev triage; no further analysis needed
dist/schema/core/schema.js safe Cleared by Jev triage; no further analysis needed
dist/schema/json/schema.js safe Cleared by Jev triage; no further analysis needed
dist/schema/tags.js safe No malicious patterns detected; the file only defines YAML schema tag mappings and helper functions with no external data access, command execution, or network activity.
dist/schema/yaml-1.1/binary.js safe Cleared by Jev triage; no further analysis needed
dist/schema/yaml-1.1/bool.js safe Cleared by Jev triage; no further analysis needed
dist/schema/yaml-1.1/float.js safe Cleared by Jev triage; no further analysis needed
dist/schema/yaml-1.1/int.js safe Cleared by Jev triage; no further analysis needed
dist/schema/yaml-1.1/merge.js safe No malicious patterns detected; the code implements YAML 1.1 merge key semantics without any exfiltration, dynamic execution, process spawning, or file system manipulation.
dist/schema/yaml-1.1/omap.js safe Cleared by Jev triage; no further analysis needed
dist/schema/yaml-1.1/pairs.js safe Cleared by Jev triage; no further analysis needed
dist/schema/yaml-1.1/schema.js safe Cleared by Jev triage; no further analysis needed
dist/schema/yaml-1.1/set.js safe Cleared by Jev triage; no further analysis needed
dist/schema/yaml-1.1/timestamp.js safe Cleared by Jev triage; no further analysis needed
dist/stringify/foldFlowLines.js safe Cleared by Jev triage; no further analysis needed
dist/stringify/stringify.js safe Cleared by Jev triage; no further analysis needed
dist/stringify/stringifyCollection.js safe Cleared by Jev triage; no further analysis needed
dist/stringify/stringifyComment.js safe Cleared by Jev triage; no further analysis needed
dist/stringify/stringifyDocument.js safe Cleared by Jev triage; no further analysis needed
dist/stringify/stringifyNumber.js safe Cleared by Jev triage; no further analysis needed
dist/stringify/stringifyPair.js safe Cleared by Jev triage; no further analysis needed
dist/stringify/stringifyString.js safe Cleared by Jev triage; no further analysis needed
dist/test-events.js safe Cleared by Jev triage; no further analysis needed
dist/util.js safe Cleared by Jev triage; no further analysis needed
dist/visit.js safe Cleared by Jev triage; no further analysis needed
util.js safe Cleared by Jev triage; no further analysis needed

Affected version ranges

None of the 2 scanned versions of yaml are flagged high or critical. The latest scanned version, 2.9.1, is medium risk. Only versions we have scanned are listed; unscanned versions between them are not covered.

1.10.32.9.1
VersionsVerdictCountRangeTop findings
2.9.0 – 2.9.1 Needs review 2 >=2.9.0 <=2.9.1 Dynamic import with user-controlled path
1.10.3 – 2.8.3 Not scanned 4 >=1.10.3 <=2.8.3

Full list, including published versions not scanned yet: version ranges API.

Scanned versions of yaml

VersionVerdictFilesScanned
2.9.1 Needs review 151 Oct 4, 2026
2.9.0 Needs review 151 Oct 6, 2026

Frequently asked questions

Is yaml safe to use?

No confirmed malware was found in yaml@2.9.1, but the review flagged 1 medium severity finding for risky patterns worth checking before you rely on it.

Does yaml contain malware?

No malware was identified in yaml@2.9.1 when Togoder Security scanned it on Oct 4, 2026. A new version can still introduce malicious code, so scan the exact versions in your lockfile.

How was yaml checked?

Togoder Security downloaded the published npm package and had an AI model read its 151 source files, looking for install scripts, credential access, network exfiltration, obfuscation, backdoors and crypto-wallet theft. The results are cached by file hash and shown here.

How do I scan yaml together with the rest of my dependencies?

Upload your lockfile at https://security.togoder.click/scan or call the API documented at https://security.togoder.click/api-docs. Files that have already been scanned, like the ones in yaml@2.9.1, cost nothing.

Related security reports