Scan Report
48 /100
feynman-fsrs-pro
基于 FSRS 算法的费曼学习导师,通过 PostgreSQL 记忆库与 Obsidian 笔记联动
Hardcoded database credentials exposed in SKILL.md and source code create significant credential theft risk; doc-to-code table name mismatch indicates shadow functionality.
Use with caution
Remove all hardcoded credentials from SKILL.md and source files. Use environment variables for database connection parameters. Correct table name inconsistency between documentation and code.
Findings 5 items
| Severity | Finding | Location |
|---|---|---|
| High | Database credentials exposed in SKILL.md Credential Theft | SKILL.md:17 |
| High | Hardcoded credentials in feynman_core.js Credential Theft | scripts/feynman_core.js:15 |
| High | Hardcoded credentials in database.js Credential Theft | scripts/database.js:7 |
| Medium | Table name mismatch between documentation and code Doc Mismatch | scripts/feynman_core.js:55 |
| Low | Hardcoded Obsidian path references specific user Sensitive Access | scripts/database.js:8 |
| Resource | Declared | Inferred | Status | Evidence |
|---|---|---|---|---|
| Filesystem | READ | READ | ✓ Aligned | Reads .md files from Obsidian directory |
| Database | WRITE | WRITE | ✓ Aligned | PostgreSQL connection with SELECT/INSERT/UPDATE queries |
| Network | NONE | READ | ✓ Aligned | Connects to local PostgreSQL at 127.0.0.1:5432 (documentation exposes '27.0.0.1'… |
| Shell | NONE | NONE | — | No shell execution observed |
1 High 15 findings
High IP Address 硬编码 IP 地址
27.0.0.1 scripts/feynman_core.js:9 Medium External URL 外部 URL
https://registry.npmmirror.com/pg/-/pg-8.20.0.tgz scripts/package-lock.json:20 Medium External URL 外部 URL
https://registry.npmmirror.com/pg-cloudflare/-/pg-cloudflare-1.3.0.tgz scripts/package-lock.json:47 Medium External URL 外部 URL
https://registry.npmmirror.com/pg-connection-string/-/pg-connection-string-2.12.0.tgz scripts/package-lock.json:54 Medium External URL 外部 URL
https://registry.npmmirror.com/pg-int8/-/pg-int8-1.0.1.tgz scripts/package-lock.json:60 Medium External URL 外部 URL
https://registry.npmmirror.com/pg-pool/-/pg-pool-3.13.0.tgz scripts/package-lock.json:69 Medium External URL 外部 URL
https://registry.npmmirror.com/pg-protocol/-/pg-protocol-1.13.0.tgz scripts/package-lock.json:78 Medium External URL 外部 URL
https://registry.npmmirror.com/pg-types/-/pg-types-2.2.0.tgz scripts/package-lock.json:84 Medium External URL 外部 URL
https://registry.npmmirror.com/pgpass/-/pgpass-1.0.5.tgz scripts/package-lock.json:100 Medium External URL 外部 URL
https://registry.npmmirror.com/postgres-array/-/postgres-array-2.0.0.tgz scripts/package-lock.json:109 Medium External URL 外部 URL
https://registry.npmmirror.com/postgres-bytea/-/postgres-bytea-1.0.1.tgz scripts/package-lock.json:118 Medium External URL 外部 URL
https://registry.npmmirror.com/postgres-date/-/postgres-date-1.0.7.tgz scripts/package-lock.json:127 Medium External URL 外部 URL
https://registry.npmmirror.com/postgres-interval/-/postgres-interval-1.2.0.tgz scripts/package-lock.json:136 Medium External URL 外部 URL
https://registry.npmmirror.com/split2/-/split2-4.2.0.tgz scripts/package-lock.json:148 Medium External URL 外部 URL
https://registry.npmmirror.com/xtend/-/xtend-4.0.2.tgz scripts/package-lock.json:157 File Tree
14 files · 69.9 KB · 2214 lines JavaScript 9f · 1231L
Markdown 2f · 627L
JSON 2f · 191L
SQL 1f · 165L
├─
▾
references
│ └─
README.md
Markdown
├─
▾
scripts
│ ├─
check_db.js
JavaScript
│ ├─
cli.js
JavaScript
│ ├─
database.js
JavaScript
│ ├─
feynman_core.js
JavaScript
│ ├─
get-note.js
JavaScript
│ ├─
index.js
JavaScript
│ ├─
package-lock.json
JSON
│ ├─
package.json
JSON
│ ├─
review-helper.js
JavaScript
│ ├─
review-start.js
JavaScript
│ ├─
schema.sql
SQL
│ └─
update-progress.js
JavaScript
└─
SKILL.md
Markdown
Dependencies 1 items
| Package | Version | Source | Known Vulns | Notes |
|---|---|---|---|---|
pg | ^8.11.3 | npm | No | PostgreSQL client library, version pinned |
Security Positives
✓ No shell execution observed - skill uses direct database queries only
✓ No external network requests detected - only local PostgreSQL connection
✓ No obfuscation techniques (base64, eval) found in codebase
✓ No credential exfiltration - hardcoded credentials are only used locally
✓ No reverse shell or C2 infrastructure indicators
✓ No prompt injection payloads detected
✓ Dependencies are minimal (pg library only) with pinned versions