github.com / ryotaushio
ryotaushio/ obsidian-pdf-plus
TypeScript·106 files·commit 6a3218b·scanned 1h ago·cached ✓
25/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.
score capped at 25 — 2,474 stars — findings likely legitimate code patterns
verdict accurate?
threat-state: lowlive
FINDINGS ░▒▓
criticalFunction() constructor detectednew Function() is equivalent to eval() and can execute arbitrary code strings.src/utils/index.ts
export function evalInContext(code: string, ctx?: any) {
return (new Function(code.includes('await') ? '(async () => {' + code + '})()' : code)).call(ctx);
}
+5criticalFunction() constructor detectednew Function() is equivalent to eval() and can execute arbitrary code strings.src/template.ts
// avoid direct eval const evaluated = new Function(...Object.keys(this.variables), `return ${expr};`)(...Object.values(this.variables)); if (evaluated === undefined) { ...+5
warningClipboard read accessnavigator.clipboard.readText() reads the user's clipboard. In a wallet/crypto context this is often used to steal copied seed phrases or private keys.src/lib/commands.ts
try {
const { settings, styleSettings, styleSheet } = JSON.parse(await navigator.clipboard.readText());
new Notice(`${this.plugin.manifest.name...+4warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.src/lib/index.ts+3
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/main.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.src/main.ts+3
warningFlattened or dead control flowDetected switch(true), dead if branches, or deeply nested ternaries — patterns used by obfuscators to hide execution order.src/utils/index.ts+3
warningHigh-entropy string literalsFound 6 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/dom-manager.ts+3
warningHigh-entropy string literalsFound 3 long strings with high Shannon entropy. This is common in obfuscated payloads that hide URLs, keys, or bytecode.src/lib/composer.ts+3
Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.
87 files scanned @ 6a3218b | 9/25/2026 | heuristic scan — always review manually
risk by category
code execution12
network & exfiltration0
file system access4
obfuscation15
supply chain0
owasp / injection0
telemetry
files 87/106rules hit 10engine v6commit 6a3218b
github
ryotaushio/obsidian-pdf-plus
PDF++: the most Obsidian-native PDF annotation & viewing tool ever. Comes with optional Vim keybindings.
2474
86
1012d
106 files
87 scanned(82%)
6a3218b
architecture░▒▓
entry (1) flagged (25) pkg (53)
135 nodes · 392 edgesscroll to zoom · click node to jump to finding