Skip to content
Heist/ feed
Back to feed
High

Security advisory

Type: advisorySources: OSVCVE: CVE-2021-38305

23andMe Yamale before 3.0.8 allows remote attackers to execute arbitrary code via a crafted schema file. The schema parser uses eval as part of its processing, and tries to protect from malicious expressions by limiting the builtins that are passed to the eval. When processing the schema, each line is run through Python's eval function to make the validator available. A well-constructed string within the schema rules can execute system commands; thus, by exploiting the vulnerability, an attacker can run arbitrary code on the image that invokes Yamale.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2021-38305
Confirmed fixed CVEs
Not specified
Updated in this feed
31 Oct 2026, 11:51 UTC · Revision 1

Source evidence

CVE-2021-38305

core-osv · Original source

Published 9 Aug 2021, 21:15 UTC

23andMe Yamale before 3.0.8 allows remote attackers to execute arbitrary code via a crafted schema file. The schema parser uses eval as part of its processing, and tries to protect from malicious expressions by limiting the builtins that are passed to the eval. When processing the schema, each line is run through Python's eval function to make the validator available. A well-constructed string within the schema rules can execute system commands; thus, by exploiting the vulnerability, an attacker can run arbitrary code on the image that invokes Yamale.

osv:CVE-2021-38305
Complete source record
{
  "id": "c0982694f99fc3c48277a95dc1a1f82ccd7be0090669950a9f60d755c934b637",
  "url": "https://osv.dev/vulnerability/CVE-2021-38305",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "CVE-2021-38305",
    "summary": "23andMe Yamale before 3.0.8 allows remote attackers to execute arbitrary code via a crafted schema file. The schema parser uses eval as part of its processing, and tries to protect from malicious expressions by limiting the builtins that are passed to the eval. When processing the schema, each line is run through Python's eval function to make the validator available. A well-constructed string within the schema rules can execute system commands; thus, by exploiting the vulnerability, an attacker can run arbitrary code on the image that invokes Yamale.",
    "evidence": "osv:CVE-2021-38305",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2021-38305",
      "aliases": [
        "CVE-2021-38305",
        "GHSA-435p-f82x-mxwm",
        "PYSEC-2021-119"
      ],
      "metrics": [
        {
          "type": "CVSS_V3",
          "score": "CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/23andme/yamale",
              "type": "GIT",
              "events": [
                {
                  "introduced": "0"
                },
                {
                  "fixed": "dcd617a318b4127e25a3011670a84ce14e36a475"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "cpe": "cpe:2.3:a:23andme:yamale:*:*:*:*:*:*:*:*",
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "3.0.8"
                      }
                    ],
                    "source": "CPE_RANGE"
                  },
                  {
                    "range": [
                      {
                        "fixed": "dcd617a318b4127e25a3011670a84ce14e36a475"
                      }
                    ],
                    "source": "REFERENCES_TAG",
                    "original_tag": "3.0.8"
                  }
                ]
              }
            }
          ],
          "versions": [
            "3.0.7",
            "3.0.6",
            "3.0.5",
            "3.0.4",
            "3.0.3",
            "3.0.2",
            "3.0.1",
            "3.0.0",
            "2.2.0",
            "2.1.0",
            "2.0.1",
            "2.0",
            "1.10.1",
            "1.10.0",
            "1.9.0",
            "1.8.1",
            "1.8.0",
            "1.7.1",
            "1.7.0",
            "1.6.4",
            "1.6.3",
            "1.6.2",
            "1.6.1",
            "1.6.0",
            "1.5.6",
            "1.5.5",
            "1.5.4",
            "1.5.3",
            "1.5.2",
            "1.4.1",
            "1.4.0",
            "1.3.1",
            "1.3.0",
            "1.2.1",
            "1.1.3",
            "1.1.2",
            "1.1.1",
            "1.1",
            "1.0.2",
            "1.0.1",
            "1.0",
            "1.0b6",
            "1.0b5",
            "1.0b4",
            "1.0b3",
            "1.0b2",
            "1.0b1",
            "1.0b0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2021-38305.json"
          }
        }
      ],
      "modified": "2026-10-20T10:54:51.772073452Z",
      "provider": "osv",
      "references": [
        "https://github.com/23andMe/Yamale/releases/tag/3.0.8",
        "https://github.com/23andMe/Yamale/pull/165"
      ],
      "provider_metadata": {}
    },
    "related_cves": [
      {
        "value": "CVE-2021-38305",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 386298,
  "published_at": "2021-08-09T21:15:08.567+00:00"
}