AI SQLite Editor — NL2SQL, AI SQL Copilot & Database Browser
The AI review rates the findings as likely false positive, but the risk score (56/100) still counts them.
Analysis record
- Analysed
- 1 weeks ago
- Version
- v0.1.4
- Artifact
- SHA256 353…F68
- Source
- Findings (non-IoC)
Is AI SQLite Editor — NL2SQL, AI SQL Copilot & Database Browser safe?
AI SQLite Editor adds a database browser to VS Code. It opens .db, .sqlite and .sqlite3 files, lets you edit rows in a grid, and converts plain English into SQL queries. Its manifest declares no special permissions and no host permissions, and no network endpoints are listed there. That is a modest footprint for something that edits database files, and the editing runs against the files you open rather than reaching around your system.
The findings we have are three outbound network calls, logged as NET-FETCH-extension/out/extension.js-3 and two related hits, plus two function-indirection matches in the same file and in the webview bundle at extension/out/webview/assets/index-74d800ae.js. If those network calls were shipping your data somewhere you did not choose, that would be worth caring about. Here they line up with the advertised feature: writing SQL from a sentence means contacting a model provider, and the extension asks for your own API key instead of bundling one. The indirection matches come from the TypeScript compiler and Vite bundle output, where helpers are called through a variable rather than by name.
Nothing we saw reads credentials. No .env, .ssh or cloud config access turned up, no malware signature matched, and no known-bad infrastructure appeared. The many low-severity code-quality notes are what any minified JavaScript bundle produces. The scanner tripped on ordinary build output and on an outbound call the AI feature needs. One thing stays true regardless of code quality: queries and schema you send to a model provider leave your machine, so the provider's data policy is the part to read.
Evidence ledger
Ranked by severity · findings with a source location link to the code viewer
YARA Rule Matches
13 rules| Severity | Rule | Hits | Files | Metadata |
|---|---|---|---|---|
| LOW | postinstall file download | 4 | src/server/server.pyout/webview/assets/index-74d800ae.jsreadme.md +1 more | - |
| LOW | UsingIntrusivePermissionsWithGeolocation | 1 | out/webview/assets/index-74d800ae.js | - |
| LOW | SQLInjection | 1 | out/webview/assets/index-74d800ae.js | - |
| LOW | NoUseWeakRandom | 1 | out/webview/assets/index-74d800ae.js | - |
| LOW | LocalStorageShouldNotBeUsed | 1 | out/webview/assets/index-74d800ae.js | - |
| LOW | DebuggerStatementsShouldNotBeUsed | 1 | out/webview/assets/index-74d800ae.js | - |
| LOW | credential env files | 1 | out/extension.js | - |
| LOW | postinstall crypto operations | 4 | out/webview/assets/index-74d800ae.jsreadme.mdout/extension.js +1 more | - |
| LOW | postinstall system command | 8 | out/extension.jsLICENSE.txtout/webview/assets/index-74d800ae.js +5 more | - |
| LOW | postinstall file manipulation | 7 | LICENSE.txtout/webview/assets/index-74d800ae.jssrc/server/server.py +4 more | - |
| LOW | postinstall environment access | 1 | src/server/server.py | - |
| LOW | postinstall obfuscation | 5 | out/webview/assets/index-74d800ae.jssrc/server/umsgpack.pyout/webview/assets/vendor.LICENSE.txt +2 more | - |
| LOW | postinstall network communication | 9 | out/webview/index.htmlout/extension.jsLICENSE.txt +6 more | - |
Publisher Evidence
Limited evidenceCiro Cesar Maciel
Publisher identity, store signals, distribution reach, and warning signals used for context. Treat this as supporting evidence, not a clean bill of health.
12 evidence rows available.
Finding Categories
YARA Rules Matched
13 rules(44 hits)AI Security Report
AI Security Review
Evidence context: threat category none; evidence quality moderate.
The extension's stated job is browsing and editing SQLite files inside a workspace, with an AI layer that turns plain English into SQL. That job requires reading and writing the .db files a user opens, and it requires outbound calls to whichever model provider the user supplies a key for. Both capabilities show up in the findings. Nothing else does.
Network. Three findings, NET-FETCH-extension/out/extension.js-3, NET-FETCH-extension/out/extension.js-6 and NET-FETCH-extension/out/webview/assets/index-74d800ae.js-2, mark outbound fetch calls in the compiled extension entry point and in the webview bundle. For a text-to-SQL feature these are the request path to the model API, and the description's "bring your own key" framing matches that. The manifest records no declared permissions, no host permissions and no enumerated endpoints, so the destination is selected at runtime from whatever provider the user configures.
Obfuscation. OBFUSCATION-FUNCTION_INDIRECT-extension/out/extension.js-3 and the matching hit in extension/out/webview/assets/index-74d800ae.js-2 flag functions invoked through a variable instead of a literal name. extension/out is TypeScript compiler output and the webview asset is a Vite build. The (0, fn)() calling convention and memoised module helpers both produce that shape, and the same pattern appears in essentially every bundled VS Code webview. There are no encoded string tables, no packed payloads and no invisible-character content anywhere in the two hit files.
Credential access. There are zero secret findings. Nothing in the evidence reads .env, .ssh, .aws or .git/config, and no credential-provider or keychain access is flagged. For a tool whose AI feature asks the user to paste in an API key, that restraint is the baseline you would want, and it is met here.
Process and filesystem scope. No child_process, shell or postinstall behaviour appears in any finding title, and the extension declares no special permissions. Row editing is performed against files the user explicitly opens through the editor, which is the documented function of a SQLite browser.
The remaining volume is 44 low-severity code-smell entries plus three dependency entries. Those are pattern matches on minified bundle output and a bundled npm tree; they describe the build, not behaviour. The dependency entries carry no advisory name in the evidence.
Strongest counterargument. With no endpoint list, an AI extension could ship schema or row contents to any host it likes, and 282 installs is a thin trust signal for a publisher we cannot tie to a verified organisation. That is a data-handling question rather than a code-integrity one, and it does not move the verdict. To change it we would need a fetch site pointing at an unadvertised host, an activation hook that runs on install, or a credential read. None of those appear: the fetch findings sit in the same module as command registration, and the activation-triggered payload pattern that would make this malicious is absent.
Key Reasons
- Outbound fetch findings in extension/out/extension.js and the webview bundle match the advertised text-to-SQL model calls
- FUNCTION_INDIRECT matches occur only in TypeScript and Vite compiled output, a standard bundler calling convention
- No credential, secret or .env/.ssh access findings; zero IoC and malware-signature matches
- No child_process, shell or activation-time download behaviour in any finding title
- Manifest declares no special permissions or host permissions
False Positive Considerations
- FUNCTION_INDIRECT matches on tsc/Vite bundle helper calls in extension/out
- NET-FETCH hits are the request path for the extension's own AI feature
- 44 low-severity code-smell matches on minified webview JavaScript
- No enumerated endpoints or declared permissions to anchor a destination check
Reviewed 2026-10-18; recommended action: suppress false positive; model confidence 78%.
VS Code version history
Risk trend by version
5 analyzed versions. Each point is the latest successful scan for that version; failed zero-score scans are hidden. Dates are based on first seen by risky plugins.
Pick any point on the chart to explore that version's code below.
Source Code Not Available
Source code is not available for this version of the extension.
About This Extension
Frequently Asked Questions
Similar Extensions
Related extensions from the same publisher or marketplace