Mainframe Hacking for CICS and Giggles
Where
Talks
ShmooCon 2023
Duration
44 min
Shows how flipping 3270 field attribute bits exposes protected and hidden fields in CICS mainframe applications.
Summary
The speakers argue that mainframe applications, particularly those built on CICS, get far less security testing than they deserve. Most mainframe talks concentrate on the operating system, so this one focuses on the application layer. They stress that these machines still underpin banking, insurance and government, yet many of the programs were written decades ago without security in mind. Getting started is hard: licences are costly, tooling is scarce and the documentation is old.
The core of the research is the 3270 data stream carried over TN3270. Because the terminal only sends input back to the host when a function key is pressed, a proxy can intercept traffic and flip the field attribute bits that control protection, numeric limits and visibility. Using that, the team made a protected price field editable, exposed a hidden purchase option, and reached a hidden screen by cycling through attention keys. They also brute-forced a four-digit supervisor code. All of this ran against a deliberately vulnerable demo application.
The team reports having seen these issues across roughly 50 real CICS applications, most of them reachable only internally, so the threat is closer to an insider. Mitigations include IBM's 3270 IDS, which needs tuning because it flags anomalies rather than malicious traffic, enforcing access control at the system level, and not hiding sensitive data in hidden fields. Practitioners can start learning with a Docker-packaged vulnerable CICS application.
Related talks
Breaking Ground·44 min
Jay Smith · Jan Nunez
Shows how intercepting 3270 terminal traffic can bypass field protections in CICS mainframe applications.
Talks·49 min
Jennifer Shannon
Walks through hands-on pentesting of a deliberately vulnerable API, showing authorization, mass assignment and injection flaws.
Talks·56 min
Alex (hex0punk) Useche
Shows common Go bugs, concurrency pitfalls, and how static and dynamic tools find them.


