Skip to content

snap7 crash via S7comm Read Variable count=0xFFFF — OpenPLC S7comm server affected #153

Description

@alosafuzz

OpenPLC Runtime bundles the snap7 library to provide an S7comm server interface
on port 102. A vulnerability in snap7's Read Variable handler allows any unauthenticated
network client to crash the snap7 server process with a single request containing
element count=0xFFFF (65535).

This has been reported upstream to the snap7 project (github.com/SCADACS/snap7).
OpenPLC will be affected until snap7 releases a patched version.

Note: this was confirmed on a test deployment running thiagoralves/OpenPLC_v3
(the archived predecessor of this repo) — since that repo is archived and can no
longer take a patch upstream, existing v3-based field deployments (a large
installed base — 1568 stars / 96 forks on the old repo) may need a migration
notice or advisory covering both codebases, since they share the vulnerable
snap7 integration.

Workaround (until patched): Firewall port 102 to trusted S7comm clients only.
In OpenPLC's settings, disabling S7comm (snap7|false in openplc.db) prevents exposure
if S7comm access is not required for the deployment.

PoC available on request (will share after coordination with snap7 maintainers).

Researcher contact: Shad Malloy, shadmalloy3@gmail.com

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions