Togoder security

npm package security report

tr46@0.0.3 security report

Risky patterns found that deserve a look.

Needs review Version 0.0.3 Files reviewed 1 Size 7.4 KB Scanned

Summary

Togoder Security scanned the npm package tr46@0.0.3 on Oct 4, 2026. An AI review of 1 source file produced 3 low severity findings. 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
0
medium
3
low

Findings 3

low

Potential unhandled null dereference

NPS-66C4614EBA46

mapChars calls findStatus(codePoint) and immediately dereferences status[1] in the switch. findStatus can return null, which would throw a TypeError. This could be triggered by crafted input and is not guarded.

index.js:57
low

ReferenceError from undeclared variable

NPS-C34CC50DD48C

Inside validateLabel's second loop, the condition references processing (processing === PROCESSING_OPTIONS.TRANSITIONAL and processing === PROCESSING_OPTIONS.NONTRANSITIONAL), but processing is not defined in that scope; the function parameters are label and processing_option. This causes a ReferenceError at runtime, which is caught by the surrounding try/catch in processing() and silently marks the domain as invalid. The intended processing_option argument is never used in the validation loop, so per-code-point validity checks are effectively skipped/broken.

index.js:189
low

Bug in DNS length verification logic

NPS-07434B96E710

In the verifyDnsLength block, the code computes var total = labels.slice(0, labels.length - 1).join(".").length; producing a number, then checks if (total.length > 253 || total.length === 0). Since total is a number, total.length is undefined, so the length check never triggers. Additionally, inside the loop it checks labels.length > 63 instead of labels[i].length > 63, so individual label length is never validated. This silently disables domain length validation, potentially allowing invalid/overlong domains to pass verification.

index.js:233

Files reviewed

FileVerdictWhat the reviewer saw
index.js medium No malicious patterns (exfiltration, credential theft, dynamic execution, install-time hooks, or network/process activity) were found; the code is a standard punycode/IDNA utility with several non-security logic bugs.

Affected version ranges

None of the 2 scanned versions of tr46 are flagged high or critical. The latest scanned version, 6.0.0, is clean. Only versions we have scanned are listed; unscanned versions between them are not covered.

0.0.36.0.0
VersionsVerdictCountRangeTop findings
6.0.0 No issues 1 6.0.0
2.1.0 โ€“ 3.0.0 Not scanned 2 >=2.1.0 <=3.0.0
0.0.3 Needs review 1 0.0.3

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

Scanned versions of tr46

VersionVerdictFilesScanned
6.0.0 No issues 3 Oct 6, 2026
0.0.3 Needs review 1 Oct 4, 2026

Frequently asked questions

Is tr46 safe to use?

No confirmed malware was found in tr46@0.0.3, but the review flagged 3 low severity findings for risky patterns worth checking before you rely on it.

Does tr46 contain malware?

No malware was identified in tr46@0.0.3 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 tr46 checked?

Togoder Security downloaded the published npm package and had an AI model read its 1 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 tr46 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 tr46@0.0.3, cost nothing.

Related security reports