This is a summary of the AI-generated 10-question deep analysis. The full version (longer answers, follow-up Q&A, related CVEs) requires login.
Read the full analysis โ
Q1What is this vulnerability? (Essence + Consequences)
๐จ **Essence**: A Path Traversal vulnerability in EspoCRM's formula script engine. ๐ **Consequences**: Authenticated admins can overwrite the `sourceId` of attachments.โฆ
๐ก๏ธ **Root Cause**: **CWE-22 (Path Traversal)**. ๐ **Flaw**: The `EspoUploadDir::getFilePath` function concatenates the `sourceId` directly into the file path **without sanitization**.โฆ
๐ข **Vendor**: EspoCRM. ๐ฆ **Product**: EspoCRM (Open-source Web CRM). ๐ **Affected Versions**: **Before 9.3.4**. โ **Fixed Version**: 9.3.4 or later.
Q4What can hackers do? (Privileges/Data)
๐ต๏ธ **Privileges Required**: **Authenticated Administrator**. ๐ฏ **Capabilities**: Can overwrite attachment `sourceId` fields. ๐ **Data Impact**: Can read/write **any file** within the web server's `open_basedir` range.โฆ
๐ **Public Exploit**: **No**. ๐ซ **PoC Status**: The `pocs` array is empty in the data. ๐ **Reference**: Official advisory exists (GHSA-7922-x7cf-j54x), but no wild exploitation code is currently public.
Q7How to self-check? (Features/Scanning)
๐ **Self-Check**: 1. Verify EspoCRM version < 9.3.4. 2. Check for admin account exposure. 3. Scan for formula script engine usage in attachments. ๐ ๏ธ **Tooling**: Use version fingerprinting tools.โฆ
โ **Fixed**: **Yes**. ๐ฆ **Patch**: Upgrade to **EspoCRM 9.3.4** or newer. ๐ **Source**: Official GitHub Security Advisory (GHSA-7922-x7cf-j54x). ๐ **Action**: Immediate update recommended for all affected instances.
Q9What if no patch? (Workaround)
๐ง **Workaround**: 1. **Restrict Admin Access**: Limit who has admin privileges. 2. **Input Validation**: If possible, patch the `EspoUploadDir::getFilePath` logic to sanitize `sourceId`. 3.โฆ
๐ฅ **Urgency**: **High**. ๐ **CVSS**: 9.8 (Critical). ๐ **Priority**: **P1**. โก **Reason**: Although it requires admin auth, the impact is full file system access within `open_basedir`.โฆ