Search

Find a vulnerability

Search criteria

    4 vulnerabilities found for Prowler by Prowler

    CVE-2026-100169 (GCVE-0-2026-100169)

    Vulnerability from nvd – Published: 2026-10-14 16:01 – Updated: 2026-10-14 16:01 X_Open Source
    VLAI
    Title
    Account pre-hijacking in the Prowler API through email based social account linking without verification
    Summary
    Improper Authentication in the social account linking path of the Prowler API in Prowler from 5.4.0 before 5.35.0 allows a remote unauthenticated attacker to obtain persistent access to the account of a user who has not yet registered, because ProwlerSocialAccountAdapter.pre_social_login() in api/src/backend/api/adapters.py links a Google or GitHub login to any existing local account that has the same email address as the one returned by the provider, without requiring that the address has been verified by the provider or on the existing account, and without any other check that both accounts belong to the same person. Self registration is open and the new account is usable at once, because UserViewSet.get_permissions() in api/src/backend/api/v1/views.py grants AllowAny to the create action, ACCOUNT_EMAIL_VERIFICATION is set to none in api/src/backend/config/settings/social_login.py, and the Django ModelBackend checks only the password and is_active, not the django-allauth EmailAddress record. An attacker who registers an email address before its owner keeps the password set at registration after the link is made, because sociallogin.connect() does not reset the password and does not disable the existing account, and the owner who later signs in with Google or GitHub is logged into the attacker's account. django-allauth makes the same email based link on its own, because SOCIALACCOUNT_EMAIL_AUTHENTICATION and SOCIALACCOUNT_EMAIL_AUTHENTICATION_AUTO_CONNECT are both set to True in the same settings module. This gives the attacker the cloud provider credentials, scan findings and tenant memberships held in the account.
    CWE
    • CWE-287 - Improper Authentication
    Assigner
    Secur0 CNA under the INCIBE root
    CNA scorecard A 99/100 over 41 records in the last 180 days details
    Impacted products
    Vendor Product Version
    Prowler Prowler Affected: 5.4.0 , < 5.35.0 (semver)
        cpe:2.3:a:prowler:prowler:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "modules": [
                "Prowler API"
              ],
              "product": "Prowler",
              "programFiles": [
                "api/src/backend/api/adapters.py",
                "api/src/backend/config/settings/social_login.py",
                "api/src/backend/api/v1/views.py"
              ],
              "repo": "https://github.com/prowler-cloud/prowler",
              "vendor": "Prowler",
              "versions": [
                {
                  "lessThan": "5.35.0",
                  "status": "affected",
                  "version": "5.4.0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:prowler:prowler:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.35.0",
                      "versionStartIncluding": "5.4.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nacho Garc\u00eda Egea"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Dar\u00edo Rivas"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Xo\u00e1n M. Otero Jorge"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Secur0 CNA"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Prowler Cloud Security Team"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Improper Authentication in the social account linking path of the Prowler API in Prowler from 5.4.0 before 5.35.0 allows a remote unauthenticated attacker to obtain persistent access to the account of a user who has not yet registered, because \u003ccode\u003eProwlerSocialAccountAdapter.pre_social_login()\u003c/code\u003e in \u003ccode\u003eapi/src/backend/api/adapters.py\u003c/code\u003e links a Google or GitHub login to any existing local account that has the same email address as the one returned by the provider, without requiring that the address has been verified by the provider or on the existing account, and without any other check that both accounts belong to the same person. Self registration is open and the new account is usable at once, because \u003ccode\u003eUserViewSet.get_permissions()\u003c/code\u003e in \u003ccode\u003eapi/src/backend/api/v1/views.py\u003c/code\u003e grants \u003ccode\u003eAllowAny\u003c/code\u003e to the \u003ccode\u003ecreate\u003c/code\u003e action, \u003ccode\u003eACCOUNT_EMAIL_VERIFICATION\u003c/code\u003e is set to \u003ccode\u003enone\u003c/code\u003e in \u003ccode\u003eapi/src/backend/config/settings/social_login.py\u003c/code\u003e, and the Django \u003ccode\u003eModelBackend\u003c/code\u003e checks only the password and \u003ccode\u003eis_active\u003c/code\u003e, not the django-allauth \u003ccode\u003eEmailAddress\u003c/code\u003e record. An attacker who registers an email address before its owner keeps the password set at registration after the link is made, because \u003ccode\u003esociallogin.connect()\u003c/code\u003e does not reset the password and does not disable the existing account, and the owner who later signs in with Google or GitHub is logged into the attacker\u0027s account. django-allauth makes the same email based link on its own, because \u003ccode\u003eSOCIALACCOUNT_EMAIL_AUTHENTICATION\u003c/code\u003e and \u003ccode\u003eSOCIALACCOUNT_EMAIL_AUTHENTICATION_AUTO_CONNECT\u003c/code\u003e are both set to \u003ccode\u003eTrue\u003c/code\u003e in the same settings module. This gives the attacker the cloud provider credentials, scan findings and tenant memberships held in the account."
                }
              ],
              "value": "Improper Authentication in the social account linking path of the Prowler API in Prowler from 5.4.0 before 5.35.0 allows a remote unauthenticated attacker to obtain persistent access to the account of a user who has not yet registered, because ProwlerSocialAccountAdapter.pre_social_login() in api/src/backend/api/adapters.py links a Google or GitHub login to any existing local account that has the same email address as the one returned by the provider, without requiring that the address has been verified by the provider or on the existing account, and without any other check that both accounts belong to the same person. Self registration is open and the new account is usable at once, because UserViewSet.get_permissions() in api/src/backend/api/v1/views.py grants AllowAny to the create action, ACCOUNT_EMAIL_VERIFICATION is set to none in api/src/backend/config/settings/social_login.py, and the Django ModelBackend checks only the password and is_active, not the django-allauth EmailAddress record. An attacker who registers an email address before its owner keeps the password set at registration after the link is made, because sociallogin.connect() does not reset the password and does not disable the existing account, and the owner who later signs in with Google or GitHub is logged into the attacker\u0027s account. django-allauth makes the same email based link on its own, because SOCIALACCOUNT_EMAIL_AUTHENTICATION and SOCIALACCOUNT_EMAIL_AUTHENTICATION_AUTO_CONNECT are both set to True in the same settings module. This gives the attacker the cloud provider credentials, scan findings and tenant memberships held in the account."
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 7.6,
                "baseSeverity": "HIGH",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287 Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-14T16:01:59.909Z",
            "orgId": "4daa8cea-433a-44bd-9456-53b127fc289a",
            "shortName": "Secur0"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/prowler-cloud/prowler/commit/0f31f1a3c2daa05b4d77a78f451e3fbfb3fe3411"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/prowler-cloud/prowler/pull/12013"
            },
            {
              "tags": [
                "release-notes"
              ],
              "url": "https://github.com/prowler-cloud/prowler/releases/tag/5.35.0"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://github.com/prowler-cloud/prowler/security/advisories/GHSA-h8m9-jgf8-vwvp"
            },
            {
              "tags": [
                "third-party-advisory",
                "technical-description"
              ],
              "url": "https://secur0.com/en/cna/cve-list/cve-2026-100169-prowler-account-pre-hijacking"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Upgrade to Prowler 5.35.0 or later. Affected versions have no environment variable or setting to disable self registration or to require email verification."
                }
              ],
              "value": "Upgrade to Prowler 5.35.0 or later. Affected versions have no environment variable or setting to disable self registration or to require email verification."
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "tags": [
            "x_open-source"
          ],
          "title": "Account pre-hijacking in the Prowler API through email based social account linking without verification",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "4daa8cea-433a-44bd-9456-53b127fc289a",
        "assignerShortName": "Secur0",
        "cveId": "CVE-2026-100169",
        "datePublished": "2026-10-14T16:01:59.909Z",
        "dateReserved": "2026-09-25T13:10:49.476Z",
        "dateUpdated": "2026-10-14T16:01:59.909Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-59151 (GCVE-0-2026-59151)

    Vulnerability from nvd – Published: 2026-07-10 17:50 – Updated: 2026-07-13 18:03
    VLAI
    Title
    Prowler: SAML Domain Claiming Enables Cross-Tenant Account Takeover
    Summary
    Prowler is a cloud security platform. Prior to 5.30.3, Prowler's SAML authentication flow trusted the email domain asserted in a SAMLResponse when deciding which tenant should receive the final token, and the ACS finish logic in api/src/backend/api/v1/views.py recalculated the tenant from user.email instead of binding token issuance to the validated SAML configuration. An authenticated attacker with a controlled SAML IdP could complete a valid SAML flow for an attacker-controlled domain while asserting an email address from another configured domain, causing a SAMLToken and tenant-scoped JWT to be issued for the wrong tenant and enabling cross-tenant account takeover. This issue is fixed in version 5.30.3.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-13 18:02 UTC
    CWE
    • CWE-287 - Improper Authentication
    Assigner
    GitHub_M CNA under the mitre root
    CNA scorecard C 72/100 over 7712 records in the last 180 days details
    Impacted products
    Vendor Product Version
    prowler-cloud prowler Affected: < 5.30.3
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-59151",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-13T18:02:53.136588Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-13T18:03:20.394Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/prowler-cloud/prowler/security/advisories/GHSA-h8m9-jgf8-vwvp"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "prowler",
              "vendor": "prowler-cloud",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c 5.30.3"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Prowler is a cloud security platform. Prior to 5.30.3, Prowler\u0027s SAML authentication flow trusted the email domain asserted in a SAMLResponse when deciding which tenant should receive the final token, and the ACS finish logic in api/src/backend/api/v1/views.py recalculated the tenant from user.email instead of binding token issuance to the validated SAML configuration. An authenticated attacker with a controlled SAML IdP could complete a valid SAML flow for an attacker-controlled domain while asserting an email address from another configured domain, causing a SAMLToken and tenant-scoped JWT to be issued for the wrong tenant and enabling cross-tenant account takeover. This issue is fixed in version 5.30.3."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "NONE",
                "baseScore": 9.6,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N",
                "version": "3.1"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287: Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-10T17:50:07.303Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/prowler-cloud/prowler/security/advisories/GHSA-h8m9-jgf8-vwvp",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/prowler-cloud/prowler/security/advisories/GHSA-h8m9-jgf8-vwvp"
            },
            {
              "name": "https://github.com/prowler-cloud/prowler/pull/11650",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/prowler-cloud/prowler/pull/11650"
            },
            {
              "name": "https://github.com/prowler-cloud/prowler/commit/bf3b5c2ba713e533014927141b64948c82c8f32e",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/prowler-cloud/prowler/commit/bf3b5c2ba713e533014927141b64948c82c8f32e"
            },
            {
              "name": "https://github.com/prowler-cloud/prowler/commit/f5ff30ad175bd2edf02cd28872653c1cda5867b7",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/prowler-cloud/prowler/commit/f5ff30ad175bd2edf02cd28872653c1cda5867b7"
            },
            {
              "name": "https://github.com/prowler-cloud/prowler/releases/tag/5.30.3",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/prowler-cloud/prowler/releases/tag/5.30.3"
            }
          ],
          "source": {
            "advisory": "GHSA-h8m9-jgf8-vwvp",
            "discovery": "UNKNOWN"
          },
          "title": "Prowler: SAML Domain Claiming Enables Cross-Tenant Account Takeover"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2026-59151",
        "datePublished": "2026-07-10T17:50:07.303Z",
        "dateReserved": "2026-07-02T16:50:27.886Z",
        "dateUpdated": "2026-07-13T18:03:20.394Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-100169 (GCVE-0-2026-100169)

    Vulnerability from cvelistv5 – Published: 2026-10-14 16:01 – Updated: 2026-10-14 16:01 X_Open Source
    VLAI
    Title
    Account pre-hijacking in the Prowler API through email based social account linking without verification
    Summary
    Improper Authentication in the social account linking path of the Prowler API in Prowler from 5.4.0 before 5.35.0 allows a remote unauthenticated attacker to obtain persistent access to the account of a user who has not yet registered, because ProwlerSocialAccountAdapter.pre_social_login() in api/src/backend/api/adapters.py links a Google or GitHub login to any existing local account that has the same email address as the one returned by the provider, without requiring that the address has been verified by the provider or on the existing account, and without any other check that both accounts belong to the same person. Self registration is open and the new account is usable at once, because UserViewSet.get_permissions() in api/src/backend/api/v1/views.py grants AllowAny to the create action, ACCOUNT_EMAIL_VERIFICATION is set to none in api/src/backend/config/settings/social_login.py, and the Django ModelBackend checks only the password and is_active, not the django-allauth EmailAddress record. An attacker who registers an email address before its owner keeps the password set at registration after the link is made, because sociallogin.connect() does not reset the password and does not disable the existing account, and the owner who later signs in with Google or GitHub is logged into the attacker's account. django-allauth makes the same email based link on its own, because SOCIALACCOUNT_EMAIL_AUTHENTICATION and SOCIALACCOUNT_EMAIL_AUTHENTICATION_AUTO_CONNECT are both set to True in the same settings module. This gives the attacker the cloud provider credentials, scan findings and tenant memberships held in the account.
    CWE
    • CWE-287 - Improper Authentication
    Assigner
    Secur0 CNA under the INCIBE root
    CNA scorecard A 99/100 over 41 records in the last 180 days details
    Impacted products
    Vendor Product Version
    Prowler Prowler Affected: 5.4.0 , < 5.35.0 (semver)
        cpe:2.3:a:prowler:prowler:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "modules": [
                "Prowler API"
              ],
              "product": "Prowler",
              "programFiles": [
                "api/src/backend/api/adapters.py",
                "api/src/backend/config/settings/social_login.py",
                "api/src/backend/api/v1/views.py"
              ],
              "repo": "https://github.com/prowler-cloud/prowler",
              "vendor": "Prowler",
              "versions": [
                {
                  "lessThan": "5.35.0",
                  "status": "affected",
                  "version": "5.4.0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "cpeApplicability": [
            {
              "nodes": [
                {
                  "cpeMatch": [
                    {
                      "criteria": "cpe:2.3:a:prowler:prowler:*:*:*:*:*:*:*:*",
                      "versionEndExcluding": "5.35.0",
                      "versionStartIncluding": "5.4.0",
                      "vulnerable": true
                    }
                  ],
                  "negate": false,
                  "operator": "OR"
                }
              ],
              "operator": "OR"
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Nacho Garc\u00eda Egea"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Dar\u00edo Rivas"
            },
            {
              "lang": "en",
              "type": "analyst",
              "value": "Xo\u00e1n M. Otero Jorge"
            },
            {
              "lang": "en",
              "type": "coordinator",
              "value": "Secur0 CNA"
            },
            {
              "lang": "en",
              "type": "remediation developer",
              "value": "Prowler Cloud Security Team"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Improper Authentication in the social account linking path of the Prowler API in Prowler from 5.4.0 before 5.35.0 allows a remote unauthenticated attacker to obtain persistent access to the account of a user who has not yet registered, because \u003ccode\u003eProwlerSocialAccountAdapter.pre_social_login()\u003c/code\u003e in \u003ccode\u003eapi/src/backend/api/adapters.py\u003c/code\u003e links a Google or GitHub login to any existing local account that has the same email address as the one returned by the provider, without requiring that the address has been verified by the provider or on the existing account, and without any other check that both accounts belong to the same person. Self registration is open and the new account is usable at once, because \u003ccode\u003eUserViewSet.get_permissions()\u003c/code\u003e in \u003ccode\u003eapi/src/backend/api/v1/views.py\u003c/code\u003e grants \u003ccode\u003eAllowAny\u003c/code\u003e to the \u003ccode\u003ecreate\u003c/code\u003e action, \u003ccode\u003eACCOUNT_EMAIL_VERIFICATION\u003c/code\u003e is set to \u003ccode\u003enone\u003c/code\u003e in \u003ccode\u003eapi/src/backend/config/settings/social_login.py\u003c/code\u003e, and the Django \u003ccode\u003eModelBackend\u003c/code\u003e checks only the password and \u003ccode\u003eis_active\u003c/code\u003e, not the django-allauth \u003ccode\u003eEmailAddress\u003c/code\u003e record. An attacker who registers an email address before its owner keeps the password set at registration after the link is made, because \u003ccode\u003esociallogin.connect()\u003c/code\u003e does not reset the password and does not disable the existing account, and the owner who later signs in with Google or GitHub is logged into the attacker\u0027s account. django-allauth makes the same email based link on its own, because \u003ccode\u003eSOCIALACCOUNT_EMAIL_AUTHENTICATION\u003c/code\u003e and \u003ccode\u003eSOCIALACCOUNT_EMAIL_AUTHENTICATION_AUTO_CONNECT\u003c/code\u003e are both set to \u003ccode\u003eTrue\u003c/code\u003e in the same settings module. This gives the attacker the cloud provider credentials, scan findings and tenant memberships held in the account."
                }
              ],
              "value": "Improper Authentication in the social account linking path of the Prowler API in Prowler from 5.4.0 before 5.35.0 allows a remote unauthenticated attacker to obtain persistent access to the account of a user who has not yet registered, because ProwlerSocialAccountAdapter.pre_social_login() in api/src/backend/api/adapters.py links a Google or GitHub login to any existing local account that has the same email address as the one returned by the provider, without requiring that the address has been verified by the provider or on the existing account, and without any other check that both accounts belong to the same person. Self registration is open and the new account is usable at once, because UserViewSet.get_permissions() in api/src/backend/api/v1/views.py grants AllowAny to the create action, ACCOUNT_EMAIL_VERIFICATION is set to none in api/src/backend/config/settings/social_login.py, and the Django ModelBackend checks only the password and is_active, not the django-allauth EmailAddress record. An attacker who registers an email address before its owner keeps the password set at registration after the link is made, because sociallogin.connect() does not reset the password and does not disable the existing account, and the owner who later signs in with Google or GitHub is logged into the attacker\u0027s account. django-allauth makes the same email based link on its own, because SOCIALACCOUNT_EMAIL_AUTHENTICATION and SOCIALACCOUNT_EMAIL_AUTHENTICATION_AUTO_CONNECT are both set to True in the same settings module. This gives the attacker the cloud provider credentials, scan findings and tenant memberships held in the account."
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 7.6,
                "baseSeverity": "HIGH",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "PASSIVE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "HIGH",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287 Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-14T16:01:59.909Z",
            "orgId": "4daa8cea-433a-44bd-9456-53b127fc289a",
            "shortName": "Secur0"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/prowler-cloud/prowler/commit/0f31f1a3c2daa05b4d77a78f451e3fbfb3fe3411"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/prowler-cloud/prowler/pull/12013"
            },
            {
              "tags": [
                "release-notes"
              ],
              "url": "https://github.com/prowler-cloud/prowler/releases/tag/5.35.0"
            },
            {
              "tags": [
                "related"
              ],
              "url": "https://github.com/prowler-cloud/prowler/security/advisories/GHSA-h8m9-jgf8-vwvp"
            },
            {
              "tags": [
                "third-party-advisory",
                "technical-description"
              ],
              "url": "https://secur0.com/en/cna/cve-list/cve-2026-100169-prowler-account-pre-hijacking"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Upgrade to Prowler 5.35.0 or later. Affected versions have no environment variable or setting to disable self registration or to require email verification."
                }
              ],
              "value": "Upgrade to Prowler 5.35.0 or later. Affected versions have no environment variable or setting to disable self registration or to require email verification."
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "tags": [
            "x_open-source"
          ],
          "title": "Account pre-hijacking in the Prowler API through email based social account linking without verification",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "4daa8cea-433a-44bd-9456-53b127fc289a",
        "assignerShortName": "Secur0",
        "cveId": "CVE-2026-100169",
        "datePublished": "2026-10-14T16:01:59.909Z",
        "dateReserved": "2026-09-25T13:10:49.476Z",
        "dateUpdated": "2026-10-14T16:01:59.909Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-59151 (GCVE-0-2026-59151)

    Vulnerability from cvelistv5 – Published: 2026-07-10 17:50 – Updated: 2026-07-13 18:03
    VLAI
    Title
    Prowler: SAML Domain Claiming Enables Cross-Tenant Account Takeover
    Summary
    Prowler is a cloud security platform. Prior to 5.30.3, Prowler's SAML authentication flow trusted the email domain asserted in a SAMLResponse when deciding which tenant should receive the final token, and the ACS finish logic in api/src/backend/api/v1/views.py recalculated the tenant from user.email instead of binding token issuance to the validated SAML configuration. An authenticated attacker with a controlled SAML IdP could complete a valid SAML flow for an attacker-controlled domain while asserting an email address from another configured domain, causing a SAMLToken and tenant-scoped JWT to be issued for the wrong tenant and enabling cross-tenant account takeover. This issue is fixed in version 5.30.3.
    SSVC
    Exploitation: poc Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-07-13 18:02 UTC
    CWE
    • CWE-287 - Improper Authentication
    Assigner
    GitHub_M CNA under the mitre root
    CNA scorecard C 72/100 over 7712 records in the last 180 days details
    Impacted products
    Vendor Product Version
    prowler-cloud prowler Affected: < 5.30.3
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-59151",
                    "options": [
                      {
                        "Exploitation": "poc"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-07-13T18:02:53.136588Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-07-13T18:03:20.394Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "references": [
              {
                "tags": [
                  "exploit"
                ],
                "url": "https://github.com/prowler-cloud/prowler/security/advisories/GHSA-h8m9-jgf8-vwvp"
              }
            ],
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "product": "prowler",
              "vendor": "prowler-cloud",
              "versions": [
                {
                  "status": "affected",
                  "version": "\u003c 5.30.3"
                }
              ]
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "value": "Prowler is a cloud security platform. Prior to 5.30.3, Prowler\u0027s SAML authentication flow trusted the email domain asserted in a SAMLResponse when deciding which tenant should receive the final token, and the ACS finish logic in api/src/backend/api/v1/views.py recalculated the tenant from user.email instead of binding token issuance to the validated SAML configuration. An authenticated attacker with a controlled SAML IdP could complete a valid SAML flow for an attacker-controlled domain while asserting an email address from another configured domain, causing a SAMLToken and tenant-scoped JWT to be issued for the wrong tenant and enabling cross-tenant account takeover. This issue is fixed in version 5.30.3."
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "NONE",
                "baseScore": 9.6,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "LOW",
                "scope": "CHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:N",
                "version": "3.1"
              }
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287: Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-07-10T17:50:07.303Z",
            "orgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
            "shortName": "GitHub_M"
          },
          "references": [
            {
              "name": "https://github.com/prowler-cloud/prowler/security/advisories/GHSA-h8m9-jgf8-vwvp",
              "tags": [
                "x_refsource_CONFIRM"
              ],
              "url": "https://github.com/prowler-cloud/prowler/security/advisories/GHSA-h8m9-jgf8-vwvp"
            },
            {
              "name": "https://github.com/prowler-cloud/prowler/pull/11650",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/prowler-cloud/prowler/pull/11650"
            },
            {
              "name": "https://github.com/prowler-cloud/prowler/commit/bf3b5c2ba713e533014927141b64948c82c8f32e",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/prowler-cloud/prowler/commit/bf3b5c2ba713e533014927141b64948c82c8f32e"
            },
            {
              "name": "https://github.com/prowler-cloud/prowler/commit/f5ff30ad175bd2edf02cd28872653c1cda5867b7",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/prowler-cloud/prowler/commit/f5ff30ad175bd2edf02cd28872653c1cda5867b7"
            },
            {
              "name": "https://github.com/prowler-cloud/prowler/releases/tag/5.30.3",
              "tags": [
                "x_refsource_MISC"
              ],
              "url": "https://github.com/prowler-cloud/prowler/releases/tag/5.30.3"
            }
          ],
          "source": {
            "advisory": "GHSA-h8m9-jgf8-vwvp",
            "discovery": "UNKNOWN"
          },
          "title": "Prowler: SAML Domain Claiming Enables Cross-Tenant Account Takeover"
        }
      },
      "cveMetadata": {
        "assignerOrgId": "a0819718-46f1-4df5-94e2-005712e83aaa",
        "assignerShortName": "GitHub_M",
        "cveId": "CVE-2026-59151",
        "datePublished": "2026-07-10T17:50:07.303Z",
        "dateReserved": "2026-07-02T16:50:27.886Z",
        "dateUpdated": "2026-07-13T18:03:20.394Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }