Ready to strengthen your defenses?
CLIENT
Confidential
SERVICE
Penetration Testing
INDUSTRY
Payments Infrastructure Provider
YEAR
2024
Problem
These changes introduced multiple caching layers and custom object-handling logic implemented in Ruby, with critical execution paths intentionally optimized for throughput and latency.
While the platform scaled effectively, these performance-driven design decisions increased complexity around trust boundaries. In particular, certain safety checks had been relaxed in favor of performance, and the engineering team sought assurance that the affected database hot paths, session and state management logic, and custom serialization code did not introduce exploitable conditions.
Solution
To go beyond pattern-based detection, we applied Ruby-native fuzzing techniques against file and object-processing endpoints. This included grammar-aware input mutation using Radamsa and targeted harnesses built with ruby-fuzzer to stress serialization and cache-write logic.
During this process, we identified a pair of application endpoints that enabled user-controlled serialized Ruby objects to be written into a shared memcached layer and later retrieved and deserialized by a separate endpoint. While neither issue appeared critical in isolation, combined they formed a viable exploitation chain.
Further analysis identified a usable deserialization gadget chain within the application’s codebase and dependencies. our team developed a controlled proof-of-concept demonstrating remote code execution via object injection, validating a complete end-to-end compromise path.
Alongside exploitation validation, Fortuna worked with the engineering team to remediate the affected code paths. This included removing unsafe deserialization, tightening cache usage semantics, and introducing defensive serialization boundaries. The updated implementation eliminated the exploitation class while preserving near-parity performance on key application flows.
Key results
1 critical vulnerability identified: Ruby object injection leading to remote code execution
2 endpoints chained into a practical exploit path (write-to-cache → read/deserialization)
14 total security findings identified and validated. 1 Critical, 3 High, 6 Medium, 4 Low
Determined that the recovered account had domain-level administrative privileges
0 false positives in the final report. All findings were manually validated and exploit-confirmed by the client team
Client: Confidential
SERVICE
Penetration Testing
YEAR
2025
Fortuna conducted an on-site office penetration test to see if an attacker could access the client's enterprise network via physical or wireless weaknesses.
Client: Confidential
SERVICE
Penetration Testing
YEAR
2025
A digital asset market data provider hired Fortuna to test if limited VPN access could be leveraged to exploit internal systems and escalate privileges in Active Directory.