CVE-2026-44312
css_parser allows to MITM included https css urls
css_parser is a Ruby CSS parser. Prior to 2.1.0 and 1.22.0, the CSS Parser gem does not validate HTTPS connections, allowing a Man-in-the-Middle (MITM) attacker to inject or modify CSS content when stylesheets are loaded via HTTPS. The connection is established with OpenSSL::SSL::VERIFY_NONE, meaning any HTTPS certificate—even entirely untrusted—will be accepted without validation. This vulnerability is fixed in 2.1.0 and 1.22.0.
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- Low
- Privileges needed
- None
- User interaction
- None
What an attacker can affect
- Confidentiality
- None
- Integrity
- Low
- Availability
- None
Exploit likelihood
What each source reports
CVE List Score used
5.8
css_parser allows to MITM included https css urls
css_parser is a Ruby CSS parser. Prior to 2.1.0 and 1.22.0, the CSS Parser gem does not validate HTTPS connections, allowing a Man-in-the-Middle (MITM) attacker to inject or modify CSS content when stylesheets are loaded via HTTPS. The connection is established with OpenSSL::SSL::VERIFY_NONE, meaning any HTTPS certificate—even entirely untrusted—will be accepted without validation. This vulnerability is fixed in 2.1.0 and 1.22.0.
- Record
CVE-2026-44312- CVSS 3.1
- 5.8 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N - Weakness
- CWE-829, CWE-295
- Updated
- 2026-11-02
EUVDEUVD-2026-30330
5.8
css_parser is a Ruby CSS parser. Prior to 2.1.0 and 1.22.0, the CSS Parser gem does not validate HTTPS connections, allowing a Man-in-the-Middle (MITM) attacker to inject or modify CSS content when stylesheets are loaded via HTTPS. The connection is established with OpenSSL::SSL::VERIFY_NONE, meaning any HTTPS certificate—even entirely untrusted—will be accepted without validation. This vulnerability is fixed in 2.1.0 and 1.22.0.
- Record
EUVD-2026-30330- CVSS 3.1
- 5.8 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-ff6c-w6qf-7xqc
5.8
CSS Parser: Improper Certificate Validation allows MITM injection of remote CSS content
Summary
The CSS Parser gem does not validate HTTPS connections, allowing a Man-in-the-Middle (MITM) attacker to inject or modify CSS content when stylesheets are loaded via HTTPS. The connection is established with OpenSSL::SSL::VERIFY_NONE, meaning any HTTPS certificate—even entirely untrusted—will be accepted without validation.
Details
In lib/css_parser/parser.rb, the HTTP client sets:
https://github.com/premailer/css_parser/blob/3f91e8db7547fac50ab50cb7f9920f785f722740/lib/css_parser/parser.rb#L646
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
As a result, the library does not validate the authenticity of HTTPS connections and does not protect against man-in-the-middle attacks. Any attacker in a position to intercept network traffic can inject or modify CSS loaded via HTTPS URLs without detection or warning.
PoC
- Set up a test Ruby project that uses the CSS Parser gem and loads an external stylesheet over HTTPS.
- Use a local proxy (such as mitmproxy or Burp Suite) to intercept outgoing HTTPS requests.
- Present a fake self-signed certificate to the client.
- Inject custom CSS into the intercepted HTTPS response.
The request will succeed and the injected CSS will be delivered to the application, as the connection is not validated.
References
https://github.com/premailer/css_parser/issues/185
Impact
Applications using CSS Parser to load remote stylesheets over HTTPS are vulnerable to CSS injection and content manipulation, regardless of the trust status of the remote server. All users who use CSS Parser to fetch external CSS over HTTPS may be impacted.
Credit
This vulnerability was uncovered by @JLLeitschuh of the @braze-inc security team.
- Record
GHSA-ff6c-w6qf-7xqc- CVSS 3.1
- 5.8 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N - Weakness
- CWE-295, CWE-829
- Updated
- 2026-11-02
NVD
5.8
css_parser is a Ruby CSS parser. Prior to 2.1.0 and 1.22.0, the CSS Parser gem does not validate HTTPS connections, allowing a Man-in-the-Middle (MITM) attacker to inject or modify CSS content when stylesheets are loaded via HTTPS. The connection is established with OpenSSL::SSL::VERIFY_NONE, meaning any HTTPS certificate—even entirely untrusted—will be accepted without validation. This vulnerability is fixed in 2.1.0 and 1.22.0.
- Record
CVE-2026-44312- CVSS 3.1
- 5.8 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N - Weakness
- CWE-295, CWE-829
- Updated
- 2026-11-02
OSV
5.8
css_parser allows to MITM included https css urls
css_parser is a Ruby CSS parser. Prior to 2.1.0 and 1.22.0, the CSS Parser gem does not validate HTTPS connections, allowing a Man-in-the-Middle (MITM) attacker to inject or modify CSS content when stylesheets are loaded via HTTPS. The connection is established with OpenSSL::SSL::VERIFY_NONE, meaning any HTTPS certificate—even entirely untrusted—will be accepted without validation. This vulnerability is fixed in 2.1.0 and 1.22.0.
- Record
CVE-2026-44312- CVSS 3.1
- 5.8 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N - Weakness
- CWE-295, CWE-829
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-44312
5.8
css_parser is a Ruby CSS parser. Prior to 2.1.0 and 1.22.0, the CSS Parser gem does not validate HTTPS connections, allowing a Man-in-the-Middle (MITM) attacker to inject or modify CSS content when stylesheets are loaded via HTTPS. The connection is established with OpenSSL::SSL::VERIFY_NONE, meaning any HTTPS certificate—even entirely untrusted—will be accepted without validation. This vulnerability is fixed in 2.1.0 and 1.22.0.
- Record
DEBIAN-CVE-2026-44312- CVSS 3.1
- 5.8 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N - Updated
- 2026-11-02
OSVGHSA-ff6c-w6qf-7xqc
5.8
CSS Parser: Improper Certificate Validation allows MITM injection of remote CSS content
Summary
The CSS Parser gem does not validate HTTPS connections, allowing a Man-in-the-Middle (MITM) attacker to inject or modify CSS content when stylesheets are loaded via HTTPS. The connection is established with OpenSSL::SSL::VERIFY_NONE, meaning any HTTPS certificate—even entirely untrusted—will be accepted without validation.
Details
In lib/css_parser/parser.rb, the HTTP client sets:
https://github.com/premailer/css_parser/blob/3f91e8db7547fac50ab50cb7f9920f785f722740/lib/css_parser/parser.rb#L646
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
As a result, the library does not validate the authenticity of HTTPS connections and does not protect against man-in-the-middle attacks. Any attacker in a position to intercept network traffic can inject or modify CSS loaded via HTTPS URLs without detection or warning.
PoC
- Set up a test Ruby project that uses the CSS Parser gem and loads an external stylesheet over HTTPS.
- Use a local proxy (such as mitmproxy or Burp Suite) to intercept outgoing HTTPS requests.
- Present a fake self-signed certificate to the client.
- Inject custom CSS into the intercepted HTTPS response.
The request will succeed and the injected CSS will be delivered to the application, as the connection is not validated.
References
https://github.com/premailer/css_parser/issues/185
Impact
Applications using CSS Parser to load remote stylesheets over HTTPS are vulnerable to CSS injection and content manipulation, regardless of the trust status of the remote server. All users who use CSS Parser to fetch external CSS over HTTPS may be impacted.
Credit
This vulnerability was uncovered by @JLLeitschuh of the @braze-inc security team.
- Record
GHSA-ff6c-w6qf-7xqc- CVSS 3.1
- 5.8 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N - Weakness
- CWE-295, CWE-829
- Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-44312
5.8
css_parser is a Ruby CSS parser. Prior to 2.1.0 and 1.22.0, the CSS Parser gem does not validate HTTPS connections, allowing a Man-in-the-Middle (MITM) attacker to inject or modify CSS content when stylesheets are loaded via HTTPS. The connection is established with OpenSSL::SSL::VERIFY_NONE, meaning any HTTPS certificate—even entirely untrusted—will be accepted without validation. This vulnerability is fixed in 2.1.0 and 1.22.0.
- Record
UBUNTU-CVE-2026-44312- CVSS 3.1
- 5.8 Medium
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:C/C:N/I:L/A:N - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
css_parserRubyGems |
2.0.0 up to 2.1.0 | 2.1.0 |
css_parserRubyGems |
before 1.22.0 | 1.22.0 |
ruby-css-parserDebian:12 |
before 1.6.0-2+deb12u1, plus listed versions 1.6.0-2 |
1.6.0-2+deb12u1 |
ruby-css-parserDebian:13 |
before 1.19.0-1+deb13u1, plus listed versions 1.19.0-1 |
1.19.0-1+deb13u1 |
ruby-css-parserDebian:14 |
before 2.1.0-1, plus listed versions 1.19.0-11.21.1-12.0.0-1 |
2.1.0-1 |
css_parserRubyGems |
before 1.22.0, plus listed versions 0.9.00.9.11.0.01.0.11.1.1 Show 45 moreShow less1.1.21.1.31.1.41.1.51.1.61.1.71.1.81.1.91.10.01.11.01.12.01.13.01.14.01.15.01.16.01.17.01.17.11.19.01.19.11.2.11.2.21.2.31.2.41.2.51.2.61.20.01.21.01.21.11.3.01.3.11.3.21.3.31.3.41.3.51.3.61.3.71.4.01.4.11.4.101.4.21.4.31.4.41.4.51.4.61.4.7 |
1.22.0 |
ruby-css-parserUbuntu:16.04:LTS |
All versions, plus listed versions 1.3.6-1 |
None known |
ruby-css-parserUbuntu:18.04:LTS |
All versions, plus listed versions 1.3.6-11.6.0-1 |
None known |
ruby-css-parserUbuntu:20.04:LTS |
All versions, plus listed versions 1.6.0-1 |
None known |
ruby-css-parserUbuntu:22.04:LTS |
All versions, plus listed versions 1.6.0-11.6.0-2 |
None known |
Show 4 moreShow less
| Package | Affected | Fixed |
|---|---|---|
ruby-css-parserUbuntu:24.04:LTS |
All versions, plus listed versions 1.6.0-21.16.0-1 |
None known |
ruby-css-parserUbuntu:25.10 |
All versions, plus listed versions 1.19.0-1 |
None known |
ruby-css-parserUbuntu:26.10 |
All versions, plus listed versions 1.21.1-12.1.0-13.0.0-1 |
None known |
ruby-css-parserUbuntu:26.04:LTS |
All versions, plus listed versions 1.19.0-11.21.1-1 |
None known |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-44312 is a medium vulnerability (CVSS 5.8) in Premailer Css Parser, published May 7, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.15%, the 3rd percentile. Fixed in css_parser 2.1.0.
References
github.com/premailer/css_parser/security/advisories/GHSA-ff6c-w6qf-7xqc
github.com/premailer/css_parser/issues/185
github.com/premailer/css_parser/commit/35e689c904225add78e0c488cf04bad052666449
github.com/premailer/css_parser/commit/e0c95d5abe91b237becb90ff316531a6547ada18
nvd.nist.gov/vuln/detail/CVE-2026-44312
github.com/rubysec/ruby-advisory-db/blob/master/gems/css_parser/CVE-2026-44312.yml
Left out here: 10 versions. The JSON record has them.