VDB
KO
MEDIUM

GHSA-qhxg-623c-cfjm

NocoDB: Plaintext Password Comparison in Shared Views

Details

### Summary The shared-view password check fell back to strict-equality (`===`) comparison for legacy plaintext passwords, leaking the password's length and per-character prefix through response timing.

### Details The bcrypt branch (hashes starting with `$2a$`/`$2b$`) was unaffected. The legacy fallback in `View.ts` now uses `crypto.timingSafeEqual` and a same-length dummy compare on the length-mismatch path, so total comparison time is approximately length-independent. The EE dashboard model's `verifyPassword` is patched the same way.

### Impact A network-positioned attacker could mount a timing oracle against shared views whose passwords predated the bcrypt migration. Exploitation requires the ability to time shared-view authentication responses but no prior authentication.

### Credit This issue was reported by [@Proscan-one](https://github.com/Proscan-one).

Are you affected?

Enter the version of the package you're using.

Affected packages

npm / nocodb
Introduced in: 0 Fixed in: 2026.05.1
Fix npm install nocodb@2026.05.1

References