In May 2023, IBM admitted that its Global Security Kit (GSKit)—a core cryptographic library for many IBM products—was affected by a new and subtle vulnerability: CVE-2023-32342. If someone on the internet knows how to pull off this attack, they can potentially extract sensitive information from certain IBM systems, without leaving obvious traces. Here’s a deep dive into what’s going on, how the attack works, and what you should do to protect your systems.

What is IBM GSKit?

GSKit is a package IBM ships with products like DB2, WebSphere, and Tivoli, providing cryptography and secure communications. Lots of IBM enterprise software relies on GSKit for “SSL/TLS” encryption. That means millions of business-critical machines use GSKit every single day.

In Simple Terms

RSA is a widely used algorithm that keeps encrypted messages secret. But in some cases, the amount of time a server spends decrypting data can expose clues about the secret decryption key it’s using. This is called a “timing side-channel vulnerability.”

CVE-2023-32342 is exactly that: GSKit’s way of decrypting RSA messages takes a little longer or shorter depending on the content of what it’s trying to decrypt—giving attackers a subtle way to “feel out” private keys if they can send lots and lots of attempts for measurement.

Dive Deeper: The Vulnerability

In GSKit, when a user connects with an RSA-encrypted session, the server's response time can subtly change depending on the private key and what’s being decrypted. If an attacker sends enough specially crafted messages, measures the response time, and applies some clever math, they can gradually uncover the server’s private RSA key or decrypt messages meant to be secure.

CVE Details

- CVE: CVE-2023-32342
- IBM X-Force ID: 255828
- Products Affected: Plenty of IBM backend products that use vulnerable GSKit versions. IBM’s List

How Could An Attacker Use This?

1. Connect to the vulnerable IBM server – Any GSKit-powered SSL/TLS server on the internet.
2. Flood the server with trial decryption messages – Each message is crafted to trigger slightly different decryption paths.
3. Carefully measure response times – This takes a lot of samples, but statisticians and cryptographers love this sort of challenge.

Decrypt sensitive data – Now, past and future encrypted communications might be at risk.

This is especially dangerous because it can happen remotely, maybe even entirely over the internet.

Exploit Code: Proof of Concept (Simplified Example in Python)

Suppose a public server uses RSA via GSKit, and attacker can measure responses when trying to establish many TLS connections or submitting corrupt encrypted data. Below is a *conceptual* proof-of-concept:

import socket
import time
from statistics import mean

SERVER = 'example.com'
PORT = 443
NUM_TRIALS = 100

def send_trial_message(trial_data):
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    s.settimeout(5)
    start = time.time()
    try:
        s.connect((SERVER, PORT))
        s.sendall(trial_data)
        # Wait for server response, could parse SSL handshake or error
        s.recv(1024)
    except Exception as e:
        pass
    s.close()
    end = time.time()
    return end - start

trial_times = []
for i in range(NUM_TRIALS):
    trial_data = b'\x16' + b'A'*256  # Try different values to trigger RSA logic branch
    t = send_trial_message(trial_data)
    trial_times.append(t)

print("Average response time:", mean(trial_times), "seconds")
print("Check for tiny differences to deduce key bits (statistical analysis needed)")

Note: Actual exploitation would use custom-crafted SSL/TLS handshake packets and much more precise timing, but you get the idea.

- NIST CVE Record for CVE-2023-32342
- IBM Security Bulletin and Patch Guidance
- IBM X-Force Exchange Entry
- Original GSKit Documentation

What’s the Fix?

IBM has released patches for this vulnerability. Upgrade to the latest GSKit versions as directed in their security bulletin. Do not expose vulnerable systems directly to the internet.

Final Thoughts

Timing attacks can be tricky for defenders—they’re quiet, don’t leave traditional logs, and work at a distance. If you run any IBM products in critical roles, patch GSKit now. Remember, no cryptography is always perfect, and attackers are getting smarter every day.

Stay safe, keep your systems updated, and always monitor security advisories!

*For more detailed technical information, consult the official IBM support pages or reach out to your IBM product representative.*

Timeline

Published on: 05/30/2023 22:15:00 UTC
Last modified on: 06/06/2023 18:18:00 UTC