CVE-2024-9102 (GCVE-0-2024-9102)
Vulnerability from cvelistv5
Published
2024-12-19 13:41
Modified
2025-04-16 11:41
CWE
  • CWE-1236 - Improper Neutralization of Formula Elements in a CSV File
Summary
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.
Impacted products
Vendor Product Version
phpLDAPadmin phpLDAPadmin Version: 1.2.0
Version: 1.2.6.7
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "adp": [
      {
        "metrics": [
          {
            "other": {
              "content": {
                "id": "CVE-2024-9102",
                "options": [
                  {
                    "Exploitation": "none"
                  },
                  {
                    "Automatable": "no"
                  },
                  {
                    "Technical Impact": "partial"
                  }
                ],
                "role": "CISA Coordinator",
                "timestamp": "2024-12-20T20:19:12.644302Z",
                "version": "2.0.3"
              },
              "type": "ssvc"
            }
          }
        ],
        "providerMetadata": {
          "dateUpdated": "2024-12-20T20:19:26.335Z",
          "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
          "shortName": "CISA-ADP"
        },
        "title": "CISA ADP Vulnrichment"
      }
    ],
    "cna": {
      "affected": [
        {
          "collectionURL": "https://github.com/leenooks/phpLDAPadmin/releases",
          "defaultStatus": "affected",
          "platforms": [
            "All platforms supporting phpLDAPadmin"
          ],
          "product": "phpLDAPadmin",
          "repo": "https://github.com/leenooks/phpLDAPadmin",
          "vendor": "phpLDAPadmin",
          "versions": [
            {
              "status": "affected",
              "version": "1.2.0"
            },
            {
              "status": "affected",
              "version": "1.2.6.7"
            }
          ]
        }
      ],
      "credits": [
        {
          "lang": "en",
          "type": "finder",
          "value": "Andreas Pfefferle, Redguard AG"
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "supportingMedia": [
            {
              "base64": false,
              "type": "text/html",
              "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\u0027s 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."
            }
          ],
          "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\u0027s 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."
        }
      ],
      "impacts": [
        {
          "capecId": "CAPEC-549",
          "descriptions": [
            {
              "lang": "en",
              "value": "CAPEC-549 Local Execution of Code"
            }
          ]
        }
      ],
      "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": {
        "dateUpdated": "2025-04-16T11:41:48.766Z",
        "orgId": "455daabc-a392-441d-aa46-37d35189897c",
        "shortName": "NCSC.ch"
      },
      "references": [
        {
          "tags": [
            "third-party-advisory"
          ],
          "url": "https://www.redguard.ch/blog/2024/12/19/security-advisory-phpldapadmin/"
        },
        {
          "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"
        }
      ],
      "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:\u003cbr\u003e- Equal (\u003ctt\u003e=\u003c/tt\u003e)\u003cbr\u003e- Plus (\u003ctt\u003e+\u003c/tt\u003e)\u003cbr\u003e- Minus (\u003ctt\u003e-\u003c/tt\u003e)\u003cbr\u003e- At (\u003ctt\u003e@\u003c/tt\u003e)\u003cbr\u003e- Tab (\u003ctt\u003e0x09\u003c/tt\u003e)\u003cbr\u003e- Carriage return (\u003ctt\u003e0x0D\u003c/tt\u003e)\u003cbr\u003e\u003cbr\u003eWhen 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 \u003ctt\u003e+-@=cmd|\u0027 /C calc.exe\u0027!\u0027A1\u0027\u003c/tt\u003e). Instead, all leading special characters up to the first legitimate character should be removed.\u003cbr\u003e\u003cbr\u003eAs an alternative to the above-mentioned filtering, OWASP suggests also another sanitization method which includes three steps (\u003ca target=\"_blank\" rel=\"nofollow\" href=\"https://owasp.org/www-community/attacks/CSV_Injection\"\u003ehttps://owasp.org/www-community/attacks/CSV_Injection\u003c/a\u003e).\u003cbr\u003e"
            }
          ],
          "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|\u0027 /C calc.exe\u0027!\u0027A1\u0027). 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"
      ],
      "title": "phpLDAPadmin: Improper Neutralization of Formula Elements",
      "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\u0026nbsp;Dynamic Data Exchange (DDE) is disabled."
            }
          ],
          "value": "It is advised that the Office settings in clients are configured in such a way that\u00a0Dynamic Data Exchange (DDE) is disabled."
        }
      ],
      "x_generator": {
        "engine": "Vulnogram 0.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "455daabc-a392-441d-aa46-37d35189897c",
    "assignerShortName": "NCSC.ch",
    "cveId": "CVE-2024-9102",
    "datePublished": "2024-12-19T13:41:24.263Z",
    "dateReserved": "2024-09-23T13:40:38.387Z",
    "dateUpdated": "2025-04-16T11:41:48.766Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2024-9102\",\"sourceIdentifier\":\"vulnerability@ncsc.ch\",\"published\":\"2024-12-19T14:15:06.327\",\"lastModified\":\"2025-04-16T12:15:15.727\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[{\"sourceIdentifier\":\"vulnerability@ncsc.ch\",\"tags\":[\"disputed\"]}],\"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\u0027s 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.\"},{\"lang\":\"es\",\"value\":\"phpLDAPadmin, al menos desde la versi\u00f3n 1.2.0 hasta la \u00faltima versi\u00f3n 1.2.6.7, permite a los usuarios exportar elementos del directorio LDAP a un archivo de valores separados por comas (CSV), pero no neutraliza elementos especiales que podr\u00edan interpretarse como un comando cuando un producto de hojas de c\u00e1lculo abre el archivo. Por lo tanto, esto podr\u00eda provocar una inyecci\u00f3n de f\u00f3rmula CSV.\"}],\"metrics\":{\"cvssMetricV40\":[{\"source\":\"vulnerability@ncsc.ch\",\"type\":\"Secondary\",\"cvssData\":{\"version\":\"4.0\",\"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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X\",\"baseScore\":5.0,\"baseSeverity\":\"MEDIUM\",\"attackVector\":\"LOCAL\",\"attackComplexity\":\"LOW\",\"attackRequirements\":\"PRESENT\",\"privilegesRequired\":\"LOW\",\"userInteraction\":\"NONE\",\"vulnConfidentialityImpact\":\"LOW\",\"vulnIntegrityImpact\":\"LOW\",\"vulnAvailabilityImpact\":\"LOW\",\"subConfidentialityImpact\":\"HIGH\",\"subIntegrityImpact\":\"HIGH\",\"subAvailabilityImpact\":\"LOW\",\"exploitMaturity\":\"NOT_DEFINED\",\"confidentialityRequirement\":\"NOT_DEFINED\",\"integrityRequirement\":\"NOT_DEFINED\",\"availabilityRequirement\":\"NOT_DEFINED\",\"modifiedAttackVector\":\"NOT_DEFINED\",\"modifiedAttackComplexity\":\"NOT_DEFINED\",\"modifiedAttackRequirements\":\"NOT_DEFINED\",\"modifiedPrivilegesRequired\":\"NOT_DEFINED\",\"modifiedUserInteraction\":\"NOT_DEFINED\",\"modifiedVulnConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedVulnIntegrityImpact\":\"NOT_DEFINED\",\"modifiedVulnAvailabilityImpact\":\"NOT_DEFINED\",\"modifiedSubConfidentialityImpact\":\"NOT_DEFINED\",\"modifiedSubIntegrityImpact\":\"NOT_DEFINED\",\"modifiedSubAvailabilityImpact\":\"NOT_DEFINED\",\"Safety\":\"NOT_DEFINED\",\"Automatable\":\"NOT_DEFINED\",\"Recovery\":\"NOT_DEFINED\",\"valueDensity\":\"NOT_DEFINED\",\"vulnerabilityResponseEffort\":\"NOT_DEFINED\",\"providerUrgency\":\"NOT_DEFINED\"}}]},\"weaknesses\":[{\"source\":\"vulnerability@ncsc.ch\",\"type\":\"Secondary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-1236\"}]}],\"references\":[{\"url\":\"https://github.com/leenooks/phpLDAPadmin/commit/ea17aadef46fd29850160987fe7740ceed1381ad#diff-93b9f3e6d4c5bdacf469ea0ec74c1e9217ca6272da9be5a1bfd711f7da16f9e3R240\",\"source\":\"vulnerability@ncsc.ch\"},{\"url\":\"https://github.com/leenooks/phpLDAPadmin/issues/274#issuecomment-2586859072\",\"source\":\"vulnerability@ncsc.ch\"},{\"url\":\"https://sourceforge.net/projects/phpldapadmin/files/phpldapadmin-php5/1.2.0\",\"source\":\"vulnerability@ncsc.ch\"},{\"url\":\"https://www.redguard.ch/blog/2024/12/19/security-advisory-phpldapadmin/\",\"source\":\"vulnerability@ncsc.ch\"}]}}",
    "vulnrichment": {
      "containers": "{\"adp\": [{\"title\": \"CISA ADP Vulnrichment\", \"metrics\": [{\"other\": {\"type\": \"ssvc\", \"content\": {\"id\": \"CVE-2024-9102\", \"role\": \"CISA Coordinator\", \"options\": [{\"Exploitation\": \"none\"}, {\"Automatable\": \"no\"}, {\"Technical Impact\": \"partial\"}], \"version\": \"2.0.3\", \"timestamp\": \"2024-12-20T20:19:12.644302Z\"}}}], \"providerMetadata\": {\"orgId\": \"134c704f-9b21-4f2e-91b3-4a467353bcc0\", \"shortName\": \"CISA-ADP\", \"dateUpdated\": \"2024-12-20T20:19:21.926Z\"}}], \"cna\": {\"tags\": [\"disputed\"], \"title\": \"phpLDAPadmin: Improper Neutralization of Formula Elements\", \"source\": {\"discovery\": \"EXTERNAL\"}, \"credits\": [{\"lang\": \"en\", \"type\": \"finder\", \"value\": \"Andreas Pfefferle, Redguard AG\"}], \"impacts\": [{\"capecId\": \"CAPEC-549\", \"descriptions\": [{\"lang\": \"en\", \"value\": \"CAPEC-549 Local Execution of Code\"}]}], \"metrics\": [{\"format\": \"CVSS\", \"cvssV4_0\": {\"Safety\": \"NOT_DEFINED\", \"version\": \"4.0\", \"Recovery\": \"NOT_DEFINED\", \"baseScore\": 5, \"Automatable\": \"NOT_DEFINED\", \"attackVector\": \"LOCAL\", \"baseSeverity\": \"MEDIUM\", \"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\", \"providerUrgency\": \"NOT_DEFINED\", \"userInteraction\": \"NONE\", \"attackComplexity\": \"LOW\", \"attackRequirements\": \"PRESENT\", \"privilegesRequired\": \"LOW\", \"subIntegrityImpact\": \"HIGH\", \"vulnIntegrityImpact\": \"LOW\", \"subAvailabilityImpact\": \"LOW\", \"vulnAvailabilityImpact\": \"LOW\", \"subConfidentialityImpact\": \"HIGH\", \"vulnConfidentialityImpact\": \"LOW\", \"vulnerabilityResponseEffort\": \"NOT_DEFINED\"}, \"scenarios\": [{\"lang\": \"en\", \"value\": \"GENERAL\"}]}], \"affected\": [{\"repo\": \"https://github.com/leenooks/phpLDAPadmin\", \"vendor\": \"phpLDAPadmin\", \"product\": \"phpLDAPadmin\", \"versions\": [{\"status\": \"affected\", \"version\": \"1.2.0\"}, {\"status\": \"affected\", \"version\": \"1.2.6.7\"}], \"platforms\": [\"All platforms supporting phpLDAPadmin\"], \"collectionURL\": \"https://github.com/leenooks/phpLDAPadmin/releases\", \"defaultStatus\": \"affected\"}], \"solutions\": [{\"lang\": \"en\", \"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|\u0027 /C calc.exe\u0027!\u0027A1\u0027). 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 ).\", \"supportingMedia\": [{\"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:\u003cbr\u003e- Equal (\u003ctt\u003e=\u003c/tt\u003e)\u003cbr\u003e- Plus (\u003ctt\u003e+\u003c/tt\u003e)\u003cbr\u003e- Minus (\u003ctt\u003e-\u003c/tt\u003e)\u003cbr\u003e- At (\u003ctt\u003e@\u003c/tt\u003e)\u003cbr\u003e- Tab (\u003ctt\u003e0x09\u003c/tt\u003e)\u003cbr\u003e- Carriage return (\u003ctt\u003e0x0D\u003c/tt\u003e)\u003cbr\u003e\u003cbr\u003eWhen 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 \u003ctt\u003e+-@=cmd|\u0027 /C calc.exe\u0027!\u0027A1\u0027\u003c/tt\u003e). Instead, all leading special characters up to the first legitimate character should be removed.\u003cbr\u003e\u003cbr\u003eAs an alternative to the above-mentioned filtering, OWASP suggests also another sanitization method which includes three steps (\u003ca target=\\\"_blank\\\" rel=\\\"nofollow\\\" href=\\\"https://owasp.org/www-community/attacks/CSV_Injection\\\"\u003ehttps://owasp.org/www-community/attacks/CSV_Injection\u003c/a\u003e).\u003cbr\u003e\", \"base64\": false}]}], \"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\"}], \"workarounds\": [{\"lang\": \"en\", \"value\": \"It is advised that the Office settings in clients are configured in such a way that\\u00a0Dynamic Data Exchange (DDE) is disabled.\", \"supportingMedia\": [{\"type\": \"text/html\", \"value\": \"It is advised that the Office settings in clients are configured in such a way that\u0026nbsp;Dynamic Data Exchange (DDE) is disabled.\", \"base64\": false}]}], \"x_generator\": {\"engine\": \"Vulnogram 0.2.0\"}, \"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\u0027s 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.\", \"supportingMedia\": [{\"type\": \"text/html\", \"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\u0027s 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.\", \"base64\": false}]}], \"problemTypes\": [{\"descriptions\": [{\"lang\": \"en\", \"type\": \"CWE\", \"cweId\": \"CWE-1236\", \"description\": \"CWE-1236 Improper Neutralization of Formula Elements in a CSV File\"}]}], \"providerMetadata\": {\"orgId\": \"455daabc-a392-441d-aa46-37d35189897c\", \"shortName\": \"NCSC.ch\", \"dateUpdated\": \"2025-04-16T11:41:48.766Z\"}}}",
      "cveMetadata": "{\"cveId\": \"CVE-2024-9102\", \"state\": \"PUBLISHED\", \"dateUpdated\": \"2025-04-16T11:41:48.766Z\", \"dateReserved\": \"2024-09-23T13:40:38.387Z\", \"assignerOrgId\": \"455daabc-a392-441d-aa46-37d35189897c\", \"datePublished\": \"2024-12-19T13:41:24.263Z\", \"assignerShortName\": \"NCSC.ch\"}",
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…