{"id":15566,"date":"2026-09-04T19:04:21","date_gmt":"2026-09-04T11:04:21","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-10796"},"modified":"2026-09-04T19:04:21","modified_gmt":"2026-09-04T11:04:21","slug":"cve-2026-10796","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-10796","title":{"rendered":"CVE-2026-10796 [HIGH] &#8211; nvm (Node Version Manager) through 0.40.4 executes arbitrary commands from version strings"},"content":{"rendered":"<p>nvm (Node Version Manager) through 0.40.4 executes arbitrary commands from version strings supplied by the configured Node.js\/io.js mirror. Commands such as `nvm install` read the available versions from the mirror&#8217;s index.tab and use the selected version, without sanitization, to build download URLs and shell\/awk commands. Two sinks are affected by the same untrusted input: nvm_download() built a curl\/wget command string and ran it with `eval`, so a version field containing command substitution (for example $(id)) was executed by the local shell; and nvm_get_checksum() interpolated the version-derived download slug into an awk program, so a crafted version could execute arbitrary commands via awk&#8217;s system(). An attacker who controls the configured mirror, supplies mirror content to a user or CI on a non-default mirror, or machine-in-the-middles a non-TLS mirror can \u2234 run arbitrary commands with the privileges of the user running nvm. The default mirror (https:\/\/nodejs.org over TLS) is not affected. Fixed on master (pending the next tagged release) by passing every argument as a literal argv element instead of using eval, by passing the value to awk as data via -v instead of interpolating it into the program, and by rejecting any version outside the Node.js\/io.js version grammar before it is used.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>nvm (Node Version Manager) through 0.40.4 executes arbitrary commands from version strings supplied by the configured Node.js\/io.js mirror. Commands such as `nvm install` read the available versions f<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-15566","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/15566","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=15566"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=15566"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=15566"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}