Miggo Logo

CVE-2024-39677: NHibernate SQL injection vulnerability in discriminator mappings, static fields referenced in HQL, and some utilities

5.9

CVSS Score
3.1

Basic Information

EPSS Score
0.38099%
Published
7/8/2024
Updated
11/18/2024
KEV Status
No
Technology
TechnologyC#

Technical Details

CVSS Vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:N/I:H/A:N
Package NameEcosystemVulnerable VersionsFirst Patched Version
NHibernatenuget< 5.4.95.4.9
NHibernatenuget>= 5.5.0, < 5.5.25.5.2

Vulnerability Intelligence
Miggo AIMiggo AI

Miggo AIRoot Cause Analysis

The vulnerability stems from implementations of ILiteralType.ObjectToSQLString that failed to properly sanitize input. Pre-patch code in multiple type classes (AbstractStringType, AbstractCharType, etc.) directly concatenated values into SQL literals without adequate escaping. The commit diff shows these methods were modified to use dialect.ToStringLiteral or invariant culture formatting, confirming they were vulnerable to SQL injection via unescaped quotes, culture manipulation, and special character injection. The high confidence comes from explicit security fixes in the referenced patches and commit changes.

Vulnerable functions

Only Mi**o us*rs **n s** t*is s**tion

WAF Protection Rules

WAF Rule

### Imp**t * SQL inj**tion vuln*r**ility *xists in som* typ*s impl*m*ntin* `ILit*r*lTyp*.O*j**tToSQLStrin*`. **ll*rs o* t**s* m*t*o*s *r* *xpos** to t** vuln*r**ility, w*i** in*lu**s: - M*ppin*s usin* in**rit*n** wit* *is*rimin*tor v*lu*s: - T**

Reasoning

T** vuln*r**ility st*ms *rom impl*m*nt*tions o* `ILit*r*lTyp*.O*j**tToSQLStrin*` t**t **il** to prop*rly s*nitiz* input. Pr*-p*t** *o** in multipl* typ* *l*ss*s (`**str**tStrin*Typ*`, `**str**t***rTyp*`, *t*.) *ir**tly *on**t*n*t** v*lu*s into SQL li