Course: NET-101, Week 10
Time: ~45 minutes (paired with lab-10-1 for one 90-minute session)
Tools: Academy mini-module at /vca-mini-wireshark-cves-2026-05/; handouts
Reading: handouts/cve-lab-wireshark-rce-quartet-2026-05.md
Overview
This lab works through the academy's Wireshark RCE quartet: four CVEs disclosed in May 2026, each representing a different bug class in Wireshark's packet dissectors. You will NOT be executing exploits. You will be reading the vulnerability descriptions, identifying the bug class in each, and mapping each to a defensive lesson.
All captures referenced in this lab are pre-loaded in the pcap-tools catalog. They are marked MALFORMED and are safe to analyze in the academy workbench (which sandboxes the dissector).
Part 1: CVE-2026-5402 -- TLS ECH Integer Truncation (~15 minutes)
Read §1 of handouts/cve-lab-wireshark-rce-quartet-2026-05.md (CVE-2026-5402).
Then load cve-2026-5402-trigger-tls-ech-overflow.pcapng from the pcap-tools catalog. (Note the MALFORMED warning in the catalog entry.)
Apply tls.handshake.type == 1 to find the ClientHello.
- Does Wireshark's dissector display any fields from this ClientHello? Or does it show an error?
- Look at the raw bytes of the packet (the hex dump in the bottom pane). Can you see the TLS record header bytes
\x16\x03at the start? - What CVE bug class is this? (CWE number and name -- find it in the handout's vulnerability table.)
- In plain English: what is the specific condition in the crafted ClientHello that triggers the integer truncation?
- What field in the legitimate TLS ECH extension was the attacker abusing?
Part 2: CVE-2026-5403 -- SBC Codec Frame-Count Overflow (~10 minutes)
Read §2 of the CVE handout (CVE-2026-5403).
Then load cve-2026-5403-trigger-sbc-rtp-overflow.pcapng from the catalog.
- What protocol does this capture carry? (SBC audio over what transport?)
- How many RTP frames are in the capture?
- What is the bug class? What is the fixed-size buffer that overflows?
- Why is a 64-frame RTP capture a trigger if the buffer is only 8192 bytes? (Explain the frame-count accounting failure in one sentence.)
Part 3: CVE-2026-5405 -- RDP ZGFX Missing Bounds Check (~10 minutes)
Read §3 of the CVE handout (CVE-2026-5405).
Then load cve-2026-5405-trigger-rdp-zgfx-overflow.pcapng from the catalog.
- What value does the ZGFX header claim for
uncompressedSize? - Why does that value trigger the bug? (What is the maximum that fits in the buffer the post-patch code allocates?)
- This is called a "classic missing-bounds-check heap overflow." What specific line of logic was missing to prevent this?
Part 4: CVE-2026-5656 -- Profile ZIP Slip (~10 minutes)
Read §4 of the CVE handout (CVE-2026-5656).
This CVE does not involve a network capture; it uses a crafted ZIP file.
- What is "zip slip"? What general file-operation vulnerability class does it represent?
- What path does the malicious ZIP entry use to escape the profile directory?
- Why does this trigger code execution rather than just arbitrary file write?
- The loopback capture (
cve-2026-5656-trigger-profile-zip-slip-loopback.pcapng) shows ambient traffic during the lab simulation -- NOT the trigger itself. What does this teach about the relationship between CVEs and network evidence?
Part 5: Cross-CVE synthesis (~5 minutes)
- Fill in this table:
| CVE | Bug class | Protocol/surface | Attacker input | Defensive measure |
|---|---|---|---|---|
| CVE-2026-5402 | ||||
| CVE-2026-5403 | ||||
| CVE-2026-5405 | ||||
| CVE-2026-5656 |
- One theme appears in CVE-2026-5402, 5403, and 5405. What is it?
- The academy's capture-file sandboxing discipline says: "
.pcapngfiles of unknown provenance go in a disposable container, never into the analyst's primary Wireshark workstation." Which specific CVE makes this most directly relevant?
Artifact
Create lab-10-2.md in your net-101/ Git repo with:
- Answers to all questions
- The cross-CVE synthesis table
Commit with a meaningful commit message (can be combined with the lab-10-1 commit).