← Back to CVE Explorer

CVE-2026-40587

Full vulnerability record from the local CVENow database.

Description

blueprintUE is a tool to help Unreal Engine developers. Prior to 4.2.0, when a user changes their password via the profile edit page, or when a password reset is completed via the reset link, neither operation invalidates existing authenticated sessions for that user. A server-side session store associates userID → session; the current password change/reset flow updates only the password column in the users table and does not destroy or mark invalid any active sessions. As a result, an attacker who has already compromised a session retains full access to the account indefinitely — even after the legitimate user has detected the intrusion and changed their password — until the session's natural expiry time (configured as SESSION_GC_MAXLIFETIME, defaulting to 86400 seconds / 24 hours, with SESSION_LIFETIME=0 meaning persistent until browser close or GC, whichever is later). This vulnerability is fixed in 4.2.0.

Severity
MEDIUM
CVSS score
6.5 (v3.1)
Vulnerability status
Deferred
Source identifier
Published
2026-04-21 18:16:51.073000
Last modified
2026-10-26 00:10:00.150000
View original CVE JSON
{
  "id": "CVE-2026-40587",
  "sourceIdentifier": "[email protected]",
  "published": "2026-04-21T18:16:51.073",
  "lastModified": "2026-10-26T00:10:00.150",
  "vulnStatus": "Deferred",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "blueprintUE is a tool to help Unreal Engine developers. Prior to 4.2.0, when a user changes their password via the profile edit page, or when a password reset is completed via the reset link, neither operation invalidates existing authenticated sessions for that user. A server-side session store associates userID → session; the current password change/reset flow updates only the password column in the users table and does not destroy or mark invalid any active sessions. As a result, an attacker who has already compromised a session retains full access to the account indefinitely — even after the legitimate user has detected the intrusion and changed their password — until the session's natural expiry time (configured as SESSION_GC_MAXLIFETIME, defaulting to 86400 seconds / 24 hours, with SESSION_LIFETIME=0 meaning persistent until browser close or GC, whichever is later). This vulnerability is fixed in 4.2.0."
    },
    {
      "lang": "es",
      "value": "blueprintUE es una herramienta para ayudar a los desarrolladores de Unreal Engine. Antes de la 4.2.0, cuando un usuario cambia su contraseña a través de la página de edición de perfil, o cuando se completa un restablecimiento de contraseña a través del enlace de restablecimiento, ninguna de las operaciones invalida las sesiones autenticadas existentes para ese usuario. Un almacén de sesiones del lado del servidor asocia userID ? sesión; el flujo actual de cambio/restablecimiento de contraseña actualiza solo la columna de contraseña en la tabla de usuarios y no destruye ni marca como inválida ninguna sesión activa. Como resultado, un atacante que ya ha comprometido una sesión retiene acceso completo a la cuenta indefinidamente - incluso después de que el usuario legítimo haya detectado la intrusión y cambiado su contraseña - hasta el tiempo de caducidad natural de la sesión (configurado como SESSION_GC_MAXLIFETIME, con un valor predeterminado de 86400 segundos / 24 horas, con SESSION_LIFETIME=0 significando persistente hasta el cierre del navegador o GC, lo que ocurra más tarde). Esta vulnerabilidad se corrige en la 4.2.0."
    }
  ],
  "affected": [
    {
      "source": "[email protected]",
      "affectedData": [
        {
          "vendor": "blueprintue",
          "product": "blueprintue-self-hosted-edition",
          "versions": [
            {
              "version": "< 4.2.0",
              "status": "affected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {
    "cvssMetricV31": [
      {
        "source": "[email protected]",
        "type": "Secondary",
        "cvssData": {
          "version": "3.1",
          "vectorString": "CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N",
          "baseScore": 6.5,
          "baseSeverity": "MEDIUM",
          "attackVector": "NETWORK",
          "attackComplexity": "LOW",
          "privilegesRequired": "HIGH",
          "userInteraction": "NONE",
          "scope": "UNCHANGED",
          "confidentialityImpact": "HIGH",
          "integrityImpact": "HIGH",
          "availabilityImpact": "NONE"
        },
        "exploitabilityScore": 1.2,
        "impactScore": 5.2
      }
    ],
    "ssvcV203": [
      {
        "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
        "ssvcData": {
          "timestamp": "2026-04-21T19:59:20.313580Z",
          "id": "CVE-2026-40587",
          "options": [
            {
              "exploitation": "poc"
            },
            {
              "automatable": "no"
            },
            {
              "technicalImpact": "total"
            }
          ],
          "role": "CISA Coordinator",
          "version": "2.0.3"
        }
      }
    ]
  },
  "weaknesses": [
    {
      "source": "[email protected]",
      "type": "Secondary",
      "description": [
        {
          "lang": "en",
          "value": "CWE-613"
        }
      ]
    }
  ],
  "references": [
    {
      "url": "https://github.com/blueprintue/blueprintue-self-hosted-edition/security/advisories/GHSA-gqpq-x62g-p4mg",
      "source": "[email protected]"
    },
    {
      "url": "https://github.com/blueprintue/blueprintue-self-hosted-edition/security/advisories/GHSA-gqpq-x62g-p4mg",
      "source": "134c704f-9b21-4f2e-91b3-4a467353bcc0"
    }
  ]
}