{"id":"CVE-2026-48741","kind":"vulnerability","aliases":["CVE-2026-48741"],"related":[],"title":"libIEC61850: crafted MMS read request crashes server via NULL dereference","description":"libIEC61850 is an open-source implementation of IEC 61850 client and server protocols including MMS, GOOSE, Sampled Values, and R-Session. Prior to 1.6.2, alternateArrayAccess in src/mms/iso_mms/server/mms_read_service.c does not validate an alternate-access sub-array range when numberOfElements is greater than zero. An out-of-range MmsValue_getElement call returns NULL, and the sub-array branch passes that value to MmsValue_isDeletable, causing a NULL pointer dereference. A remote MMS Read request can therefore crash servers whose data models contain arrays, while the single-element error path handles the same invalid index safely. This issue is fixed in version 1.6.2.","summary":"libIEC61850 prior to 1.6.2 mishandles alternate-access sub-array ranges in MMS Read requests, dereferencing a NULL pointer. A remote client can crash a server that exposes array data in its model.","severity":"high","cvss":7.5,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["c","embedded","energy","iec61850","libiec61850","package","scada"],"not_affected_if":["libiec61850-1.6.2-or-later","no-array-data-in-model"],"how_to_check":"- Check the libIEC61850 version in your build or vendored source; affected versions are those before `1.6.2`.\n- Look for an MMS server built from libIEC61850 that is reachable on TCP port 102 from untrusted networks.","fix":"- Upgrade libIEC61850 to `1.6.2` or later.","status":"open","published_at":"2026-10-16T16:18:11+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","triaged_at":"2026-10-25T03:25:02+00:00","updated_at":"2026-10-25T03:25:02+00:00","category":"package","confidence":0.7,"triage":{"at":"2026-10-25T03:25:02Z","model":"claude-haiku-5-5","output":{"fix":"- Upgrade libIEC61850 to `1.6.2` or later.","reach":"network","title":"libIEC61850: crafted MMS read request crashes server via NULL dereference","impact":"low","summary":"libIEC61850 prior to 1.6.2 mishandles alternate-access sub-array ranges in MMS Read requests, dereferencing a NULL pointer. A remote client can crash a server that exposes array data in its model.","category":"package","nicknames":[],"who_cares":["iec61850","libiec61850","scada","energy","embedded","c"],"confidence":0.7,"needs_auth":"unknown","worst_case":"Remote MMS client crashes the server process, causing denial of service.","analyst_note":"Confirm whether MMS Read requires an association or authentication before reaching this path, using the NVD entry and the upstream 1.6.2 advisory.","how_to_check":"- Check the libIEC61850 version in your build or vendored source; affected versions are those before `1.6.2`.\n- Look for an MMS server built from libIEC61850 that is reachable on TCP port 102 from untrusted networks.","needs_analyst":true,"not_affected_if":["libiec61850-1.6.2-or-later","no-array-data-in-model"],"who_is_affected":"Teams running an IEC 61850 server built on libIEC61850 whose data model contains arrays, and whose MMS endpoint accepts Read requests from the network. Clients only, or servers without array data in the model, are not described as affected by the sources.","user_interaction":"no","needs_special_setup":"unknown","severity_if_unknown":"high"},"cost_usd":0.000625,"input_tokens":3469,"output_tokens":556,"severity_before":"high"},"analyst_status":null,"analyst_note":null,"search":"'-2026':12A,15A '-48741':13A,16A '1.6.2':27B,83C,164C '61850':67C 'access':31B,93C 'altern':30B,92C 'alternate-access':29B,91C 'alternatearrayaccess':84C 'array':34B,53B,96C,118C,144C 'branch':119C 'c':17B 'call':111C 'caus':126C 'client':46B,68C 'contain':143C 'craft':2A 'crash':6A,48B,138C 'cve':11A,14A 'data':54B,141C 'derefer':10A,130C 'dereferenc':40B 'element':149C 'embed':18B 'energi':19B 'error':150C 'expos':52B 'fix':161C 'getel':110C 'goos':74C 'greater':101C 'handl':152C 'iec':66C 'iec61850':20B 'implement':64C 'includ':72C 'index':156C 'invalid':155C 'isdelet':125C 'issu':159C 'libiec61850':1A,21B,24B,58C 'mishandl':28B 'mms':3A,37B,73C,133C 'mmsvalu':109C,124C 'model':57B,142C 'null':9A,42B,113C,128C 'numberofel':99C 'open':62C 'open-sourc':61C 'out-of-rang':105C 'packag':22B 'pass':120C 'path':151C 'pointer':43B,129C 'prior':25B,81C 'protocol':71C 'r':79C 'r-session':78C 'rang':35B,97C,108C 'read':4A,38B,134C 'remot':45B,132C 'request':5A,39B,135C 'return':112C 'safe':157C 'sampl':75C 'scada':23B 'server':7A,50B,70C,139C 'session':80C 'singl':148C 'single-el':147C 'sourc':63C 'src/mms/iso_mms/server/mms_read_service.c':86C 'sub':33B,95C,117C 'sub-array':32B,94C,116C 'therefor':137C 'valid':89C 'valu':76C,122C 'version':163C 'via':8A 'whose':140C 'zero':103C","nicknames":[],"mitigations":[],"who_affected":"Teams running an IEC 61850 server built on libIEC61850 whose data model contains arrays, and whose MMS endpoint accepts Read requests from the network. Clients only, or servers without array data in the model, are not described as affected by the sources.","tier":"B","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-16T16:18:11+00:00","kev":null,"cvss_vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H","cvss_by":"security-advisories@github.com","poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-48741","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-48741","severity":null,"published_at":"2026-10-16T16:18:11+00:00","modified_at":"2026-10-21T03:17:19+00:00","first_seen_at":"2026-10-23T21:57:13+00:00","fetched_at":"2026-10-23T22:28:55+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}