{"id":"CVE-2024-9102","state":"PUBLISHED","title":"phpLDAPadmin: Improper Neutralization of Formula Elements","description":"phpLDAPadmin since at least version 1.2.0 through the latest version 1.2.6.7 allows users to export elements from the LDAP directory into a Comma-Separated Value (CSV) file, but it does not neutralize special elements that could be interpreted as a command when the file is opened by a spreadsheet product. Thus, this could lead to CSV Formula Injection. NOTE: This vulnerability will not be addressed, the maintainer's position is that it is not the intention of phpLDAPadmin to control what data Administrators can put in their LDAP database, nor filter it on export.","publishedAt":"2024-12-19T13:41:24.263Z","updatedAt":"2025-04-16T11:41:48.766Z","severity":{"score":5,"label":"Medium","version":"4.0","vector":"CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:H/SI:H/SA:L","source":"NCSC.ch"},"assigner":"NCSC.ch","products":["phpLDAPadmin phpLDAPadmin"],"affected":[{"vendor":"phpLDAPadmin","product":"phpLDAPadmin","defaultStatus":"affected","versions":[{"version":"1.2.0","status":"affected"},{"version":"1.2.6.7","status":"affected"}],"collectionURL":"https://github.com/leenooks/phpLDAPadmin/releases","platforms":["All platforms supporting phpLDAPadmin"],"repo":"https://github.com/leenooks/phpLDAPadmin"}],"references":["https://www.redguard.ch/blog/2024/12/19/security-advisory-phpldapadmin/","https://github.com/leenooks/phpLDAPadmin/commit/ea17aadef46fd29850160987fe7740ceed1381ad#diff-93b9f3e6d4c5bdacf469ea0ec74c1e9217ca6272da9be5a1bfd711f7da16f9e3R240","https://sourceforge.net/projects/phpldapadmin/files/phpldapadmin-php5/1.2.0","https://github.com/leenooks/phpLDAPadmin/issues/274#issuecomment-2586859072"],"weaknesses":["CWE-1236"],"ingestedAt":"2026-10-29T20:08:20.985Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2024/9xxx/CVE-2024-9102.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.1","cveMetadata":{"cveId":"CVE-2024-9102","state":"PUBLISHED","datePublished":"2024-12-19T13:41:24.263Z","dateUpdated":"2025-04-16T11:41:48.766Z","assignerShortName":"NCSC.ch","assignerOrgId":"455daabc-a392-441d-aa46-37d35189897c","dateReserved":"2024-09-23T13:40:38.387Z"},"containers":{"cna":{"title":"phpLDAPadmin: Improper Neutralization of Formula Elements","descriptions":[{"lang":"en","value":"phpLDAPadmin since at least version 1.2.0 through the latest version 1.2.6.7 allows users to export elements from the LDAP directory into a Comma-Separated Value (CSV) file, but it does not neutralize special elements that could be interpreted as a command when the file is opened by a spreadsheet product. Thus, this could lead to CSV Formula Injection. NOTE: This vulnerability will not be addressed, the maintainer's position is that it is not the intention of phpLDAPadmin to control what data Administrators can put in their LDAP database, nor filter it on export."}],"affected":[{"vendor":"phpLDAPadmin","product":"phpLDAPadmin","defaultStatus":"affected","versions":[{"version":"1.2.0","status":"affected"},{"version":"1.2.6.7","status":"affected"}],"collectionURL":"https://github.com/leenooks/phpLDAPadmin/releases","platforms":["All platforms supporting phpLDAPadmin"],"repo":"https://github.com/leenooks/phpLDAPadmin"}],"references":[{"url":"https://www.redguard.ch/blog/2024/12/19/security-advisory-phpldapadmin/","tags":["third-party-advisory"]},{"url":"https://github.com/leenooks/phpLDAPadmin/commit/ea17aadef46fd29850160987fe7740ceed1381ad#diff-93b9f3e6d4c5bdacf469ea0ec74c1e9217ca6272da9be5a1bfd711f7da16f9e3R240"},{"url":"https://sourceforge.net/projects/phpldapadmin/files/phpldapadmin-php5/1.2.0"},{"url":"https://github.com/leenooks/phpLDAPadmin/issues/274#issuecomment-2586859072"}],"metrics":[{"cvssV4_0":{"Automatable":"NOT_DEFINED","Recovery":"NOT_DEFINED","Safety":"NOT_DEFINED","attackComplexity":"LOW","attackRequirements":"PRESENT","attackVector":"LOCAL","baseScore":5,"baseSeverity":"MEDIUM","privilegesRequired":"LOW","providerUrgency":"NOT_DEFINED","subAvailabilityImpact":"LOW","subConfidentialityImpact":"HIGH","subIntegrityImpact":"HIGH","userInteraction":"NONE","valueDensity":"NOT_DEFINED","vectorString":"CVSS:4.0/AV:L/AC:L/AT:P/PR:L/UI:N/VC:L/VI:L/VA:L/SC:H/SI:H/SA:L","version":"4.0","vulnAvailabilityImpact":"LOW","vulnConfidentialityImpact":"LOW","vulnIntegrityImpact":"LOW","vulnerabilityResponseEffort":"NOT_DEFINED"},"format":"CVSS","scenarios":[{"lang":"en","value":"GENERAL"}]}],"problemTypes":[{"descriptions":[{"cweId":"CWE-1236","description":"CWE-1236 Improper Neutralization of Formula Elements in a CSV File","lang":"en","type":"CWE"}]}],"providerMetadata":{"shortName":"NCSC.ch","orgId":"455daabc-a392-441d-aa46-37d35189897c","dateUpdated":"2025-04-16T11:41:48.766Z"},"credits":[{"lang":"en","type":"finder","value":"Andreas Pfefferle, Redguard AG"}],"impacts":[{"capecId":"CAPEC-549","descriptions":[{"lang":"en","value":"CAPEC-549 Local Execution of Code"}]}],"solutions":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"It is recommended that control characters at the beginning of character strings in cells are filtered before CSV export in order to avoid formula injection. As such functions always start with one of the following characters, these can be filtered specifically:<br>- Equal (<tt>=</tt>)<br>- Plus (<tt>+</tt>)<br>- Minus (<tt>-</tt>)<br>- At (<tt>@</tt>)<br>- Tab (<tt>0x09</tt>)<br>- Carriage return (<tt>0x0D</tt>)<br><br>When filtering these special characters, care should be taken to ensure that not only the special characters in the first position are removed (for example in <tt>+-@=cmd|' /C calc.exe'!'A1'</tt>). Instead, all leading special characters up to the first legitimate character should be removed.<br><br>As an alternative to the above-mentioned filtering, OWASP suggests also another sanitization method which includes three steps (<a target=\"_blank\" rel=\"nofollow\" href=\"https://owasp.org/www-community/attacks/CSV_Injection\">https://owasp.org/www-community/attacks/CSV_Injection</a>).<br>"}],"value":"It is recommended that control characters at the beginning of character strings in cells are filtered before CSV export in order to avoid formula injection. As such functions always start with one of the following characters, these can be filtered specifically:\n- Equal (=)\n- Plus (+)\n- Minus (-)\n- At (@)\n- Tab (0x09)\n- Carriage return (0x0D)\n\nWhen filtering these special characters, care should be taken to ensure that not only the special characters in the first position are removed (for example in +-@=cmd|' /C calc.exe'!'A1'). Instead, all leading special characters up to the first legitimate character should be removed.\n\nAs an alternative to the above-mentioned filtering, OWASP suggests also another sanitization method which includes three steps ( https://owasp.org/www-community/attacks/CSV_Injection )."}],"source":{"discovery":"EXTERNAL"},"tags":["disputed"],"workarounds":[{"lang":"en","supportingMedia":[{"base64":false,"type":"text/html","value":"It is advised that the Office settings in clients are configured in such a way that&nbsp;Dynamic Data Exchange (DDE) is disabled."}],"value":"It is advised that the Office settings in clients are configured in such a way that Dynamic Data Exchange (DDE) is disabled."}],"x_generator":{"engine":"Vulnogram 0.2.0"}},"adp":[{"title":"CISA ADP Vulnrichment","metrics":[{"other":{"type":"ssvc","content":{"timestamp":"2024-12-20T20:19:12.644302Z","id":"CVE-2024-9102","options":[{"Exploitation":"none"},{"Automatable":"no"},{"Technical Impact":"partial"}],"role":"CISA Coordinator","version":"2.0.3"}}}],"providerMetadata":{"shortName":"CISA-ADP","orgId":"134c704f-9b21-4f2e-91b3-4a467353bcc0","dateUpdated":"2024-12-20T20:19:26.335Z"}}]}}}