VS Code Marketplace Verified

AI SQLite Editor — NL2SQL, AI SQL Copilot & Database Browser

by Ciro Cesar Maciel · 285 users · 5.0 rating
ce0d6938-b58b-5ad6-9a1a-9fe3b76fed46 | v0.1.4
56/ 100
MEDIUM risk
No change since v0.1.0
Analyst verdict
Review before use

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

50 detail rows

YARA Rule Matches

13 rules
SeverityRuleHitsFilesMetadata
LOWLocalStorageShouldNotBeUsed 1
out/webview/assets/index-74d800ae.js
-
LOWDebuggerStatementsShouldNotBeUsed 1
out/webview/assets/index-74d800ae.js
-
LOWpostinstall crypto operations 4
out/webview/assets/index-74d800ae.jsreadme.mdout/extension.js +1 more
-
LOWpostinstall system command 8
out/extension.jsLICENSE.txtout/webview/assets/index-74d800ae.js +5 more
-
LOWpostinstall file manipulation 7
LICENSE.txtout/webview/assets/index-74d800ae.jssrc/server/server.py +4 more
-
LOWpostinstall environment access 1
src/server/server.py
-
LOWpostinstall obfuscation 5
out/webview/assets/index-74d800ae.jssrc/server/umsgpack.pyout/webview/assets/index-c9e0c018.css +2 more
-
LOWpostinstall network communication 9
out/webview/index.htmlout/webview/assets/vendor.LICENSE.txtLICENSE.txt +6 more
-
LOWpostinstall file download 4
src/server/server.pyout/webview/assets/index-74d800ae.jsreadme.md +1 more
-
LOWUsingIntrusivePermissionsWithGeolocation 1
out/webview/assets/index-74d800ae.js
-
LOWSQLInjection 1
out/webview/assets/index-74d800ae.js
-
LOWNoUseWeakRandom 1
out/webview/assets/index-74d800ae.js
-
LOWcredential env files 1
out/extension.js
-

Publisher Evidence

Limited evidence

Ciro 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.

47
Noisy-finding weight
x1.00
Publisher domain
ciromaciel.click
Observed
Store verification signal
Not exposed
Not exposed
Extension portfolio
11
Portfolio

12 evidence rows available.

Finding Categories

3
Network

YARA Rules Matched

13 rules(44 hits)
LocalStorageShouldNotBeUsed DebuggerStatementsShouldNotBeUsed postinstall crypto operations postinstall system command postinstall file manipulation postinstall environment access postinstall obfuscation postinstall network communication postinstall file download UsingIntrusivePermissionsWithGeolocation SQLInjection NoUseWeakRandom credential env files

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.

Selected
56
Change since first
+5
Change from previous
No change
Versions:
First analyzed version
0.0.1
May 31, 2026
Risk range
51 to 56
Across analyzed versions
Latest analyzed version
0.1.4
Oct 16, 2026
Selected version
medium
Version
v0.1.4
1 weeks ago
Risk score
56
Findings
50
Change vs previous
No change

Pick any point on the chart to explore that version's code below.

About This Extension

AI-powered SQLite editor, viewer, and browser for VS Code. Ask your database in plain English (NL2SQL / text-to-SQL), browse and edit rows like a spreadsheet, manage schema, get AI-generated SQL queries, and inline explanations for SQL errors. Works with .db, .sqlite, .sqlite3, and .db3 files. Bring

Frequently Asked Questions