CVE-2024-27280: Buffer Overflow
A buffer-overread issue was discovered in StringIO 3.0.1, as distributed in Ruby 3.0.x through 3.0.6 and 3.1.x through 3.1.4. The ungetbyte and ungetc methods on a StringIO can read past the end of a string, and a subsequent call to StringIO.gets may return the memory value. 3.0.3 is the main fixed version; however, for Ruby 3.0 users, a fixed version is stringio 3.0.1.1, and for Ruby 3.1 users, a fixed version is stringio 3.0.1.2.
Other sources
AirPort. A permissions issue was addressed with additional restrictions.
— Apple
AMD. A buffer overflow was addressed with improved bounds checking.
— Apple
An issue was discovered in StringIO 3.0.1, as distributed in Ruby 3.0.x through 3.0.6 and 3.1.x through 3.1.4.
The ungetbyte and ungetc methods on a StringIO can read past the end of a string, and a subsequent call to StringIO.gets may return the memory value.
This vulnerability is not affected StringIO 3.0.3 and later, and Ruby 3.2.x and later.
We recommend to update the StringIO gem to version 3.0.3 or later. In order to ensure compatibility with bundled version in older Ruby series, you may update as follows instead:
For Ruby 3.0 users: Update to stringio 3.0.1.1 For Ruby 3.1 users: Update to stringio 3.1.0.2
You can use gem update stringio to update it. If you are using bundler, please add gem "stringio", ">= 3.0.1.2" to your Gemfile.
— GitHub
An issue was discovered in StringIO 3.0.1, as distributed in Ruby 3.0.x through 3.0.6 and 3.1.x through 3.1.4.
The ungetbyte and ungetc methods on a StringIO can read past the end of a string, and a subsequent call to StringIO.gets may return the memory value.
This vulnerability is not affected StringIO 3.0.3 and later, and Ruby 3.2.x and later.
— Red Hat
AppKit. The issue was resolved by blocking unsigned services from launching on Intel Macs.
— Apple
Credit
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade
rubygems/stringioto a version that resolves this vulnerability.Fixed in 3.0.1.1 - Upgrade
Upgrade
redhat/stringioto a version that resolves this vulnerability.Fixed in 3.0.1.1 - Upgrade
Upgrade
redhat/stringioto a version that resolves this vulnerability.Fixed in 3.0.1.2 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 26 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 15.7 - Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Fixed in 14.8 - Upgrade
Upgrade
alpine/rubyto a version that resolves this vulnerability.Fixed in 3.1.5-r0 - Upgrade
Upgrade
alpine/rubyto a version that resolves this vulnerability.Fixed in 3.2.4-r0 - Upgrade
Upgrade
alpine/rubyto a version that resolves this vulnerability.Fixed in 3.3.1-r0 - Upgrade
Upgrade
debian/ruby3.1to a version that resolves this vulnerability.Fixed in 3.1.2-7+deb12u1 - Upgrade
Upgrade
stringioto a version that resolves this vulnerability.Fixed in 3.0.3 - Configuration
Add gem "stringio", ">= 3.0.1.2" to the Gemfile when using Bundler.
Bundler Gemfile dependency = gem "stringio", ">= 3.0.1.2"
Event History
Parent advisories
This vulnerability appears in the following advisories.
Peer vulnerabilities
Found alongside the following vulnerabilities.
- CVE-2025-43288
- CVE-2025-43208
- CVE-2025-43312
- CVE-2025-43321
- CVE-2025-43344
- CVE-2025-31268
- CVE-2025-43331
- CVE-2025-43317
- CVE-2025-43340
- CVE-2025-43337
- CVE-2025-43320
- CVE-2025-43285
- CVE-2025-43330
- CVE-2025-43346
- CVE-2025-43361
- CVE-2025-43451
- CVE-2025-43307
- CVE-2025-43354
- CVE-2025-43303
- CVE-2025-43357
- CVE-2025-43323
- CVE-2025-43403
- CVE-2025-43349
- CVE-2025-43292
- CVE-2025-43372
- CVE-2025-24088
- CVE-2025-43305
- CVE-2025-43290
- CVE-2025-43289
- CVE-2025-46284
- CVE-2025-43316
- CVE-2025-31271
- CVE-2025-31270
- CVE-2025-43326
- CVE-2025-43283
- CVE-2025-46280
- CVE-2025-43325
- CVE-2025-43287
- CVE-2025-43338
- CVE-2025-43302
- CVE-2025-31255
- CVE-2025-43366
- CVE-2025-43359
- CVE-2025-43345
- CVE-2025-43299
- CVE-2025-43295
- CVE-2025-43353
- CVE-2025-43294
- CVE-2025-43319
- CVE-2025-43315
- CVE-2025-43355
- CVE-2025-43207
- CVE-2025-43279
- CVE-2025-43301
- CVE-2025-43298
- CVE-2025-46310
- CVE-2025-40909
- CVE-2025-43297
- CVE-2025-31269
- CVE-2025-43204
- CVE-2024-27280
- CVE-2025-46306
- CVE-2025-43327
- CVE-2025-43329
- CVE-2025-43328
- CVE-2025-43318
- CVE-2025-46307
- CVE-2025-31259
- CVE-2025-43332
- CVE-2025-43293
- CVE-2025-43291
- CVE-2025-43286
- CVE-2025-43369
- CVE-2025-43358
- CVE-2025-43367
- CVE-2025-43190
- CVE-2025-43333
- CVE-2025-24197
- CVE-2025-6965
- CVE-2025-43341
- CVE-2025-43314
- CVE-2025-43304
- CVE-2025-43306
- CVE-2025-43347
- CVE-2025-43296
- CVE-2025-43311
- CVE-2025-43308
- CVE-2025-43262
- CVE-2025-43356
- CVE-2025-43272
- CVE-2025-43343
- CVE-2025-43342
- CVE-2025-43419
- CVE-2025-43376
- CVE-2025-43368
- CVE-2025-43310
- CVE-2025-43464
- CVE-2025-43364
- CVE-2025-43508
- CVE-2025-43277
- CVE-2025-43273
- CVE-2025-43231
- DLA-3858-1
Frequently Asked Questions
What is the severity of CVE-2024-27280?
CVE-2024-27280 is classified as a buffer overread vulnerability that can lead to potentially sensitive information disclosure.
How do I fix CVE-2024-27280?
To fix CVE-2024-27280, upgrade the StringIO library to version 3.0.1.1 or higher.
What versions are affected by CVE-2024-27280?
CVE-2024-27280 affects StringIO versions 3.0.1 through 3.0.6 and 3.1.x through 3.1.4.
What are the potential impacts of CVE-2024-27280?
The potential impacts of CVE-2024-27280 include reading past the end of a string, which may leak memory contents.
Which packages are affected by CVE-2024-27280?
CVE-2024-27280 affects the StringIO package available through RubyGems and Red Hat.