GHSA-2cvj-g5r5-jrrg

Suggest an improvement
Source
https://github.com/advisories/GHSA-2cvj-g5r5-jrrg
Import Source
https://github.com/github/advisory-database/blob/main/advisories/github-reviewed/2025/04/GHSA-2cvj-g5r5-jrrg/GHSA-2cvj-g5r5-jrrg.json
JSON Data
https://api.osv.dev/v1/vulns/GHSA-2cvj-g5r5-jrrg
Published
2025-04-10T21:08:50Z
Modified
2025-04-10T21:08:50Z
Severity
  • 2.3 (Low) CVSS_V4 - CVSS:4.0/AV:N/AC:L/AT:P/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N CVSS Calculator
Summary
SurrealDB has local file read of 2-column TSV files via analyzers
Details

An authenticated system user at the root, namespace, or database levels can use the DEFINE ANALYZER statement to point to arbitrary file locations on the file system, and should the file be tab separated with two columns, the analyzer can be leveraged to exfiltrate the content.

This issue was discovered and patched during an code audit and penetration test of SurrealDB by cure53, the severity defined within cure53's preliminary finding is Low, matched by our CVSS v4 assessment.

Impact

Limited to unauthorised access to 2 column TSV files on the file system

Patches

A patch has been created that introduces a new environment variable, SURREAL_FILE_ALLOWLIST , which contains a list of allowed file paths. When a mapping file is processed, the mapper checks if the file’s path is within one of the allowed paths.

  • Versions 2.1.5, 2.2.2 and later are not affected by this issue.

Workarounds

Users unable to update may want to limit those with root, namespace, or database level users to trusted parties only.

References

SurrealQL Documentation - DEFINE ANALYZER #5600

Database specific
{
    "nvd_published_at": null,
    "cwe_ids": [
        "CWE-22"
    ],
    "severity": "LOW",
    "github_reviewed": true,
    "github_reviewed_at": "2025-04-10T21:08:50Z"
}
References

Affected packages

crates.io / surrealdb

Package

Affected ranges

Type
SEMVER
Events
Introduced
2.2.0
Fixed
2.2.2

crates.io / surrealdb

Package

Affected ranges

Type
SEMVER
Events
Introduced
0Unknown introduced version / All previous versions are affected
Fixed
2.1.5