Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
3 Skipped Deployments
|
|
Warning This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
How to use the Graphite Merge QueueAdd the label merge-queue to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
11e48fd to
6e7aff4
Compare
Pull Request Review: SQLite SupportThis PR adds SQLite database support to RivetKit with a custom KV-backed VFS implementation. ✅ Strengths
|
Pull Request Review: SQLite SupportThis PR introduces SQLite support to RivetKit with a custom KV-backed VFS implementation. 🎯 Overall AssessmentQuality: High - Well-structured with good separation of concerns ✅ Strengths
🔴 Critical Issues1. SQL Injection Vulnerabilities (HIGH SEVERITY)
|
6e7aff4 to
4bd9a35
Compare
4bd9a35 to
4e6fb02
Compare
4e6fb02 to
4c7288e
Compare
4c7288e to
2fe07ff
Compare
2fe07ff to
8ddb5d7
Compare
8ddb5d7 to
6b07a10
Compare
b644aff to
4202678
Compare
4202678 to
9067558
Compare
9067558 to
93c49a2
Compare
6b07a10 to
3f59b30
Compare
| execute: async (query, ...args) => { | ||
| const results: Record<string, unknown>[] = []; | ||
| let columnNames: string[] | null = null; | ||
| await db.exec(query, (row: unknown[], columns: string[]) => { | ||
| // Capture column names on first row | ||
| if (!columnNames) { | ||
| columnNames = columns; | ||
| } | ||
| // Convert array row to object | ||
| const rowObj: Record<string, unknown> = {}; | ||
| for (let i = 0; i < row.length; i++) { | ||
| rowObj[columnNames[i]] = row[i]; | ||
| } | ||
| results.push(rowObj); | ||
| }); | ||
| return results; |
There was a problem hiding this comment.
Parameterized queries silently ignored: The execute method accepts ...args parameters but never uses them. The wa-sqlite exec method only takes a query string and callback, so any arguments passed are silently dropped. This could lead to SQL injection vulnerabilities if developers expect parameterized query support.
execute: async (query, ...args) => {
// wa-sqlite doesn't support parameterized queries via exec()
// Either document this limitation or use prepare/bind pattern
if (args.length > 0) {
throw new Error('Parameterized queries not supported. Use string interpolation carefully to avoid SQL injection.');
}
// ... rest of implementation
}Spotted by Graphite Agent
Is this helpful? React 👍 or 👎 to let us know.
Merge activity
|

No description provided.