Readiness report
Pat Winlink Radio Email Station · 2026-09-03 03:51 · complete · 7 searches, 10 pages fetched
Cybersecurity — software & network: Review before networking · 5 findings
Details in the Cybersecurity section of the report below.
Readiness: Pat Winlink Radio Email Station
Verdict: Ready with caveats · 2026-09-02 · est. parts cost $290–$1,570 for the core station (add $450–$2,000 only if PACTOR mode is required) Cybersecurity — software & network: Review before networking
This is the cold check for this lab — there is no previous readiness report, so the prices, sellers and availability recorded below establish the baseline that future checks will measure drift against. Five of the six items on the bill of materials are commodity computing and amateur-radio equipment, currently listed for sale by multiple named sellers, and the lab's own snapshot grants wide substitution latitude on every one of them. The station can be built and taught today. The single troubled item is the SCS PTC series PACTOR controller: no unit in that series is in current production, leaving only a used market, and the current-production successor is not on the tested-hardware list of the driver this project pins. That is a caveat rather than a blocker because the lab itself scopes the PACTOR controller to one optional operating mode — Pat's telnet, AX.25, ARDOP and VARA transports need no PACTOR hardware at all, and the readily available soundcard interface below carries them.
Action required
| Part | Problem | Recommended action |
|---|---|---|
| SCS PTC Series PACTOR Controller | Obsolete. No PTC-II-series unit is in current production; the manufacturer's site lists only the PXdragon DR-9400 as a current device and marks both P4dragon models "no longer available". Used units are listed at $449.96–$639.20. | First decide whether PACTOR is needed at all — it is optional for this lab, and the soundcard interface covers ARDOP, VARA and packet. If it is needed, buy a used PTC-IIex with an ESN (~$639); it is on the pinned driver's tested list. Do not buy the $1,853–$2,000 DR-9400 without confirming driver support first (see Substitutes). |
| SCS PTC Series PACTOR Controller (used purchase) | PTC-II and early PTC-IIe units without an ESN can no longer be licensed for Pactor-III — SCS issues no new callsign-keyed codes. | Check for the bar-code ESN label on the underside before buying. Without it the modem runs Pactor-II only; an ESN retrofit plus licence runs about $350 on top of the purchase price. |
| Amateur Radio Transceiver | Not a sourcing problem — a scoping trap. The two cheapest listings are VHF/UHF-only or 10 m-only radios, which cannot do HF Winlink. | If the lab teaches HF Winlink, budget the $595–$1,100 HF SSB tier (Xiegu X6100, Icom IC-7300). Confirm the chosen model against the Hamlib supported-rig list before ordering. |
Cybersecurity — software & network
Review before networking — Thirty-five pinned dependencies were checked and three carry advisories at their exact pinned versions, the required Go toolchain line is past end of life, and the peer-to-peer listener ships with an empty password — all fixable, but each needs attention before the station goes on a shared network.
| Component | Version | How known | Support status |
|---|---|---|---|
| Pat (Winlink client application) | not determined | not determined (The lab's materials pin no Pat release version; go.mod declares only the module path github.com/la5nta/pat.) | — |
| Go toolchain | 1.24.0 | read from project (go directive in go.mod (fetched/01-go.mod, line printed verbatim by run_python: 'go 1.24.0')) | unsupported since 2026-02-10 |
| golang.org/x/net | v0.38.0 | read from project (pinned in the indirect require block of go.mod (fetched/01-go.mod)) | — |
| golang.org/x/mod | v0.22.0 | read from project (pinned in the indirect require block of go.mod (fetched/01-go.mod)) | — |
| golang.org/x/sys | v0.40.0 | read from project (pinned in the indirect require block of go.mod (fetched/01-go.mod)) | — |
| github.com/gorilla/mux (web mailbox HTTP router) | v1.8.1 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/gorilla/websocket (web mailbox live updates) | v1.5.3 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/microcosm-cc/bluemonday (HTML sanitiser) | v1.0.27 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/la5nta/wl2k-go (Winlink protocol stack) | v1.0.1 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/harenber/ptc-go/v2 (SCS PACTOR modem driver) | v2.2.4 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/n8jja/Pat-Vara (VARA modem driver) | v1.2.0 | read from project (pinned in the direct require block of go.mod (fetched/01-go.mod)) | — |
| github.com/albenik/go-serial/v2 (serial / CAT port access) | v2.6.1 | read from project (pinned in the indirect require block of go.mod (fetched/01-go.mod)) | — |
| golang.org/x/vuln (govulncheck tool directive) | v1.1.4 | read from project (tool directive and indirect require entry in go.mod (fetched/01-go.mod)) | — |
| Hamlib (rigctl transceiver control) | not determined | not determined (Named in the lab's README as an external binary dependency; no version is stated anywhere in the lab's materials.) | — |
| Host operating system (Linux, macOS, Windows or Android) | not determined | not determined (The lab's README names four possible operating systems and pins no version or distribution for any of them.) | — |
| VARA HF/FM and ARDOP software TNC engines | not determined | not determined (External closed-source software modems named by protocol in the lab's README; no version is stated.) | — |
| Component | Finding | Severity | Fix available? |
|---|---|---|---|
| golang.org/x/mod | Two advisories affect golang.org/x/mod at the pinned v0.22.0, both in the module checksum-database code that verifies downloaded dependencies, so an instructor rebuilding Pat from source could have a tampered dependency accepted as genuine. — GO-2026-6179, GO-2026-6180 | moderate | Yes — update to v0.40.0 |
| golang.org/x/net | Ten advisories affect golang.org/x/net exactly as pinned at v0.38.0, including a moderate-severity denial of service in its HTML parser and a panic when parsing malformed DNS records, so malformed message content or a hostile network response could crash the station's web mailbox or its name resolution. — GHSA-5cv4-jp36-h3mw, GO-2026-5942, GO-2026-5025, GO-2026-5026 (+2 more) | moderate | Yes — update to v0.56.0 |
| golang.org/x/sys | One advisory, an integer overflow in a Windows-only string helper, affects golang.org/x/sys at the pinned v0.40.0; it matters only if the station is built and run on Windows rather than on the Linux single-board computer the lab describes. — GO-2026-5024 | low | Yes — update to v0.44.0 |
| Go toolchain | The Go 1.24 release line that go.mod asks for reached end of life on 2026-02-10, so the toolchain this station is built with no longer receives security fixes of its own. | posture | Mitigation only — build and run the station with a Go release that still receives security updates; the go directive in go.mod sets a minimum, so a newer toolchain can build the project unchanged |
| Pat web mailbox and telnet-p2p listener | Pat's shipped defaults bind the web mailbox to localhost:8080 with no authentication setting defined for it anywhere in cfg/config.go, and the telnet peer-to-peer listener defaults to ListenAddr ':8774' with an empty password, so enabling the P2P listener the way the lab's example session does publishes a passwordless service on every network interface. | posture | Mitigation only — leave the web mailbox on localhost and reach it over an SSH tunnel, set a non-empty telnet-p2p password before enabling the listener, and keep the station on an isolated network segment |
What this means for your lab
Every one of the 35 software libraries this project pins was checked against the public vulnerability database this run, and 32 came back clean. Three did not, and one of them matters most: the networking library that handles HTML and DNS has ten known problems at the exact version pinned here, any of which could crash the station rather than let someone take it over. The bigger practical risk is how the station is placed on a network. Out of the box Pat's web mailbox is reachable only from the machine it runs on, which is the safe default and worth keeping. But the peer-to-peer listener that the lab's own example switches on listens on every network interface with a blank password, and there is no login on the web mailbox at all if you move it off localhost so students can reach it from another machine. Anyone else on the same network could then read, send and delete mail as the station's callsign, which on an amateur licence is the operator's personal responsibility. Finally, the Go toolchain version the project asks for stopped receiving security updates in February 2026. Practical steps: keep the web interface bound to localhost and reach it over an SSH tunnel, set a real telnet password before enabling the peer-to-peer listener, put the station on its own isolated network segment rather than the campus network, update the three flagged libraries, and build with a current Go release. Talk to campus IT before connecting this to a shared network.
Not checked
- Pat (Winlink client application): The lab's materials pin no Pat release version, so no advisory lookup against a specific version was possible.
- Hamlib (rigctl): Version not stated in the lab's materials; without a concrete version neither an advisory lookup nor a support-status lookup can return a meaningful answer.
- Host operating system (Linux, macOS, Windows or Android): The lab names four possible operating systems and pins no version or distribution, so no end-of-life or advisory lookup was possible.
- VARA HF/FM and ARDOP software TNC engines: External closed-source software modems with no version stated and no vulnerability database covering them; absence of advisories here is not evidence of safety.
Parts
| Part | Spec/Package | Status | Stock | Price | Source |
|---|---|---|---|---|---|
| Host Computer System | Raspberry Pi 4 Model B or any PC/SBC running Go 1.24 binaries with USB/serial host ports | readily available | not reported | $55.00 (2GB) – $189.59 (8GB) | PiShop USA, eBay, Best Buy |
| Amateur Radio Transceiver | HF or VHF/UHF, SSB or FM voice/data, CAT rig control, Hamlib-supported; 13.8 V DC nominal | readily available | not reported | $119.99 (VHF/UHF) – $1,039.95 (HF) | Buy Two Way Radios, GigaParts |
| SCS PTC Series PACTOR Controller | External enclosure, DB9/USB serial host port + multi-pin DIN radio port; 13.8 V DC nominal (9–15 V), 200–500 mA | obsolete or discontinued — used market only | not reported | $449.96 (PTC-IIe, used) – $639.20 (PTC-IIex, used) | Boaters Resale Shop of Texas; eBay seller movemarine |
| Radio Audio / Soundcard TNC Interface | External USB peripheral, radio accessory jack, optoisolated PTT; 5 V USB bus powered | readily available | not reported | $100.80 (SignaLink SLUSB6PM) – $168.55 | DX Engineering, ML&S, eBay |
| USB to Serial Rig Control (CAT) Cable | USB-A to DB9 / mini-DIN / 3.5 mm TRS; FTDI, CP2102 or CH340 bridge | readily available | not reported | $7.99 – $50.00 | Waveshare, Ham Radio Outlet, eBay |
| GPS Receiver (optional) | External USB/serial puck, NMEA 0183 at 4800 or 9600 baud; 5 V USB bus powered | readily available | not reported | $7.00 – $119.95 | Hinesight, The GPS Store, West Marine |
Stock levels are not reported for any row: every item on this bill of materials is a retail product priced through shopping listings rather than an authorized-distributor catalogue part, and those listings publish price and seller but not inventory. "Readily available" here means currently listed for sale by the named sellers.
Substitutes
| For part | Substitute | Differences | Verified | Judgment |
|---|---|---|---|---|
| SCS PTC Series PACTOR Controller | SCS P4dragon DR-7400 / DR-7800 | Same manufacturer and command set. The pinned driver github.com/harenber/ptc-go/v2 v2.2.4 covers it — the driver's wiki states it is "tested against the PTC-II, -III and DR-7X00 (since v2.2.0) series". Manufacturer states the DR-7800 has "pin-compatible radio ports – easy upgrade from PTC-II". USB host port satisfies the snapshot's DB9/USB requirement. Needs config.json "baudrate": 829440 instead of 57600 — a configuration change, not an incompatibility. | verified: ptc-go v2.2.4 driver support for the DR-7X00 series (ptc-go wiki, fetched this run) and PTC-II pin-compatible radio ports on the DR-7800 (scs-pactor.com, fetched this run). not verified: current price and stock — no retail listing for either model appeared in this run's evidence and the manufacturer marks both "no longer available"; supply-voltage range not stated on any page fetched this run. | Best technical fit and the only model the pinned driver is actually tested against — but no current source. Watch the used market; cannot be recommended as a purchase today. |
| SCS PTC Series PACTOR Controller | SCS PXdragon DR-9400 — $1,853.12 WiMo / $1,999.99 DX Engineering | Supply rail 12–30 V covers the lab's 13.8 V nominal — no supply-rail exclusion. Current draw 270 mA typical / 1 A max against the original's 200–500 mA: exceeds the original ceiling, acceptable on a supply already feeding a 20 A transceiver. USB, LAN and RS-232 host interfaces satisfy the DB9/USB requirement. Manufacturer states it is "software compatible with PTC-II and P4dragon applications". In current production and in stock. | verified: supply-voltage range 12–30 V against the lab's 13.8 V nominal rail, and current draw, from the SeaTech Systems product page fetched this run; current price and stock from this run's shopping evidence; the manufacturer's claim of PTC-II software compatibility (scs-pactor.com, fetched this run). not verified: harenber/ptc-go v2.2.4 support for the DR-9400 specifically — the driver's wiki lists its tested hardware as "PTC-II, -III and DR-7X00", which does not include the DR-9400; radio-port pin compatibility with a PTC-II cable — stated by the manufacturer for the DR-7800 only and silent for the DR-9400. | Plausible, unverified. Do not commit $1,850–$2,000 on the strength of a marketing compatibility line — confirm DR-9400 support with the ptc-go project first, or buy a used driver-tested PTC-IIex instead. |
Verify any substitute against its datasheet — and, for these modems, against the ptc-go driver's own supported-hardware notes — before ordering.
Other dependencies
- Board fabrication — not applicable. The lab ships no PCB design files, Gerber archives or layer stackups; the station is off-the-shelf equipment joined by cables. There is nothing to fabricate and no fab-house risk.
- Project homepage http://getpat.io — live (fetched this run).
- Winlink 2000 system overview http://winlink.org — live (fetched this run).
- Project repository https://github.com/la5nta/pat — live (the project manifest was fetched from its master branch this run).
- PACTOR driver documentation https://github.com/harenber/ptc-go — live, but relocated. The repository README now says only that documentation has moved to the wiki; the substantive setup and supported-hardware notes are at the repository wiki, which was fetched this run.
- Protocol stack repository https://github.com/la5nta/wl2k-go — not checked directly. It reaches this lab as a pinned dependency rather than a separate download.
Watch list
- SCS PTC series PACTOR controller — the one item with no new-production source. Used supply on eBay and marine resale sites is thin and priced by condition; expect the $449.96–$639.20 band to move and listings to disappear between checks. Re-check whether the ptc-go project has added the DR-9400 to its tested list, which would open a current-production path.
- P4dragon DR-7400 / DR-7800 — driver-supported but marked "no longer available" by the manufacturer this run. If either returns to stock anywhere it becomes the best answer for this line; worth a look each check.
- Amateur radio transceiver — no obsolescence risk, but the HF models that make this lab interesting sit at $595–$1,100 and are the largest single line in the budget. Watch for price movement and for the chosen model's Hamlib support status.
- Raspberry Pi 4 Model B — an older board still widely listed at a wide spread ($55–$189 for different RAM tiers). If supply thins, any PC or newer Pi satisfies the snapshot's requirement, so this is a price watch rather than an availability risk.
- Tigertronics SignaLink USB — sold in radio-specific connector variants; the variant needed depends on the transceiver chosen. A radio change mid-course silently invalidates the interface already bought.