Open5GS is a C-language Open Source implementation for 5G Core and EPC, i.e. the core network of LTE/NR network (Release-19)
This report summarizes scanner evidence for open5gs/open5gs, a C project with 2,800 GitHub stars. SynthScan examined 3,030,739 lines of code across 11263 source files, recording 2514 pattern matches distributed across 14 syntactic categories. The legacy adjusted pattern signal is 0.8 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 2472 finding(s).
Are imports declared and package/API names verified? 5 finding(s).
Are wrappers, guards, and repeated structures necessary? 58 finding(s).
Which changes need focused human review? 2514 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 2514 distinct pattern matches across 14 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | misc/valgrind/parse_suppressions.sh | 1 | #! /usr/bin/awk -f | COMMENT |
| LOW | tests/unit/mme-attach-test.c | 121 | #define emm_state_initial attach_state_initial | COMMENT |
| LOW | tests/unit/mme-attach-test.c | 161 | #define mme_send_release_access_bearer_or_ue_context_release attach_access_release | COMMENT |
| LOW | tests/unit/mme-attach-test.c | 181 | #define mme_s11_handle_delete_indirect_data_forwarding_tunnel_response attach_delete_tunnel_response | COMMENT |
| LOW | tests/unit/mme-attach-test.c | 221 | #define mme_gtp_send_update_bearer_response attach_gtp_update_bearer | COMMENT |
| LOW | tests/unit/mme-attach-test.c | 241 | #undef mme_gtp_close | COMMENT |
| LOW | tests/unit/mme-apn-test.c | 41 | { return OGS_OK; } | COMMENT |
| LOW | tests/unit/amf-registration-test.c | 121 | return OGS_OK; | COMMENT |
| LOW | tests/unit/amf-registration-test.c | 141 | #define nas_5gs_send_registration_reject registration_gmm_reject | COMMENT |
| LOW | tests/unit/amf-registration-test.c | 161 | #undef GMM_HANDLER_H | COMMENT |
| LOW | tests/unit/amf-registration-test.c | 181 | void gmm_state_ue_context_will_remove(ogs_fsm_t *s, amf_event_t *e); | COMMENT |
| LOW | tests/unit/amf-registration-test.c | 201 | #define amf_sess_sbi_discover_by_nsi registration_discover_nsi | COMMENT |
| LOW | tests/fuzzing/sbi-openapi-model-fuzz.c | 21 | #include <stdint.h> | COMMENT |
| LOW | tests/fuzzing/sbi-openapi-model-fuzz.c | 41 | #include "model/pcc_rule.h" | COMMENT |
| LOW | tests/core/tlv-test.c | 21 | #include "core/abts.h" | COMMENT |
| LOW | tests/common/context.h | 21 | #error "This header cannot be included directly." | COMMENT |
| LOW | tests/common/test-common.h | 21 | #define TEST_COMMON_H | COMMENT |
| LOW | tests/common/test-common.h | 41 | #include "ogs-sbi.h" | COMMENT |
| LOW | tests/common/test-common.h | 61 | #include "common/ngap-path.h" | COMMENT |
| LOW | tests/common/sctp.h | 41 | #define testenb_s1ap_close ogs_socknode_free | COMMENT |
| LOW | tests/sctp/sctp-test.c | 21 | #include "core/abts.h" | COMMENT |
| LOW | docs/_config.yml | 1 | # Welcome to Jekyll! | COMMENT |
| LOW | docs/_docs/tutorial/02-VoLTE-setup.md | 561 | // ports to talk. See http://www.kb.cert.org/vuls/id/800113 | COMMENT |
| LOW | docs/_docs/tutorial/04-metrics-prometheus.md | 41 | # | COMMENT |
| LOW | docs/_docs/troubleshoot/02-now-in-github-issues.md | 1021 | # o SGW selection by eNodeB TAC | COMMENT |
| LOW | docs/_docs/troubleshoot/02-now-in-github-issues.md | 1041 | # o SMF selection by APN | COMMENT |
| LOW | docs/_docs/troubleshoot/02-now-in-github-issues.md | 1061 | # (either single or multiple e_cell_id, HEX representation) | COMMENT |
| LOW | docs/_docs/troubleshoot/02-now-in-github-issues.md | 1081 | # subnet: 10.45.0.1/16 | COMMENT |
| LOW | docs/_docs/troubleshoot/02-now-in-github-issues.md | 1101 | # - subnet: 2001:db8:cafe::1/48 | COMMENT |
| LOW | docs/_docs/troubleshoot/02-now-in-github-issues.md | 1121 | # - -10.45.0.200 | COMMENT |
| LOW | .github/FUNDING.yml | 1 | # These are supported funding model platforms | COMMENT |
| LOW | .github/stale.yml | 41 | # Comment to post when closing a stale Issue or Pull Request. | COMMENT |
| LOW | lib/core/ogs-sockpair.h | 21 | #error "This header cannot be included directly." | COMMENT |
| LOW | lib/core/ogs-tlv-msg.h | 21 | #if !defined(OGS_CORE_INSIDE) && !defined(OGS_CORE_COMPILATION) | COMMENT |
| LOW | lib/core/ogs-tlv.h | 21 | #if !defined(OGS_CORE_INSIDE) && !defined(OGS_CORE_COMPILATION) | COMMENT |
| LOW | lib/core/ogs-signal.h | 41 | COMMENT | |
| LOW | lib/core/abts.c | 21 | * Modified by Sukchan Lee to fit Open5GS coding style. | COMMENT |
| LOW | lib/core/ogs-strings.c | 41 | * | COMMENT |
| LOW | lib/core/ogs-log.h | 21 | #error "This header cannot be included directly." | COMMENT |
| LOW | lib/core/ogs-time.c | 61 | #include <mach/mach.h> | COMMENT |
| LOW | lib/core/ogs-sockaddr.c | 41 | #if HAVE_CTYPE_H | COMMENT |
| LOW | lib/core/ogs-socket.h | 21 | #error "This header cannot be included directly." | COMMENT |
| LOW | lib/core/ogs-signal.c | 141 | #ifdef SIGHUP | COMMENT |
| LOW | lib/core/ogs-signal.c | 161 | #endif | COMMENT |
| LOW | lib/core/ogs-signal.c | 181 | store_desc(SIGPIPE, "Broken pipe"); | COMMENT |
| LOW | lib/core/ogs-signal.c | 201 | #ifdef SIGPWR | COMMENT |
| LOW | lib/core/ogs-signal.c | 221 | #endif | COMMENT |
| LOW | lib/core/ogs-signal.c | 261 | { | COMMENT |
| LOW | lib/core/ogs-rand.c | 21 | COMMENT | |
| LOW | lib/core/ogs-memory.h | 81 | #define ogs_malloc(size) ogs_malloc_debug(size, OGS_FILE_LINE) | COMMENT |
| LOW | lib/core/ogs-compat.h | 21 | #error "This header cannot be included directly." | COMMENT |
| LOW | lib/core/ogs-compat.h | 41 | #if defined(_WIN32_WINNT) && (_WIN32_WINNT < 0x0600) | COMMENT |
| LOW | lib/core/ogs-compat.h | 61 | #include <netinet/in.h> | COMMENT |
| LOW | lib/core/ogs-strings.h | 41 | * | COMMENT |
| LOW | lib/core/abts.h | 21 | * Modified by Sukchan Lee to fit Open5GS coding style. | COMMENT |
| LOW | lib/core/ogs-macros.h | 21 | #error "This header cannot be included directly." | COMMENT |
| LOW | lib/core/ogs-macros.h | 41 | #else | COMMENT |
| LOW | lib/core/ogs-macros.h | 61 | #if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ > 4) | COMMENT |
| LOW | lib/core/ogs-macros.h | 81 | #define htole32(x) (x) | COMMENT |
| LOW | lib/core/ogs-macros.h | 101 | #define le64toh(x) OSSwapLittleToHostInt64((x)) | COMMENT |
| 2358 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM⚡ | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1266 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1268 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 294 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 296 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 366 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 368 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 509 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 511 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 925 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 927 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1667 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1669 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1783 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1785 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1266 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM⚡ | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1268 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 294 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 296 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 366 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 368 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 509 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 511 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 925 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 927 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1590 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1592 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1703 | # --------------------------------------------------------------------------- | COMMENT |
| MEDIUM | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1705 | # --------------------------------------------------------------------------- | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | lib/pfcp/support/pfcp-tlv.py | 3 | # This file is part of Open5GS. | COMMENT |
| MEDIUM | lib/nas/5gs/support/nas-message.py | 5 | # This file is part of Open5GS. | COMMENT |
| MEDIUM | lib/nas/5gs/support/type-list.py | 4 | # This file is part of Open5GS. | COMMENT |
| MEDIUM | lib/nas/eps/support/nas-message.py | 5 | # This file is part of Open5GS. | COMMENT |
| MEDIUM | lib/nas/eps/support/type-list.py | 4 | # This file is part of Open5GS. | COMMENT |
| MEDIUM | lib/gtp/v1/support/gtp1-tlv.py | 5 | # This file is part of Open5GS. | COMMENT |
| MEDIUM | lib/gtp/v2/support/gtp-tlv.py | 3 | # This file is part of Open5GS. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lib/pfcp/support/pfcp-tlv.py | 139 | def find_group_ie_header_cell(row): | STRING |
| LOW | lib/pfcp/support/pfcp-tlv.py | 190 | def sorted_group_items_by_dependency(sorted_group_list): | STRING |
| LOW⚡ | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1270 | def _extract_schema_name_from_ref(ref_str): | CODE |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 25 | def split_lines_preserve_exact(text: str): | CODE |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 59 | def try_transform_allof_patterns(lines, start_idx): | CODE |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 127 | def try_transform_extensible_enum(lines, start_idx, keyword="anyOf"): | CODE |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 605 | def resolve_ref_is_null_value(ref_str: str) -> bool: | CODE |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 617 | def _is_inline_extensible_enum(item_lines): | CODE |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1352 | def try_transform_category_i_mixed(lines, start_idx, all_schemas, current_file, | CODE |
| LOW⚡ | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1270 | def _extract_schema_name_from_ref(ref_str): | CODE |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 25 | def split_lines_preserve_exact(text: str): | CODE |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 59 | def try_transform_allof_patterns(lines, start_idx): | CODE |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 127 | def try_transform_extensible_enum(lines, start_idx, keyword="anyOf"): | CODE |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 605 | def resolve_ref_is_null_value(ref_str: str) -> bool: | CODE |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 617 | def _is_inline_extensible_enum(item_lines): | CODE |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1304 | def try_transform_category_i_mixed(lines, start_idx, all_schemas, current_file, | CODE |
| LOW | lib/gtp/v1/support/gtp1-tlv.py | 189 | def document_paragraph_tables(document): | STRING |
| LOW | lib/gtp/v2/support/gtp-tlv.py | 223 | def find_group_ie_header_cell(row): | CODE |
| LOW | lib/gtp/v2/support/gtp-tlv.py | 260 | def document_paragraph_tables(document): | CODE |
| LOW | lib/asn1c/common/constr_TYPE.h | 186 | typedef asn_type_selector_result_t(asn_type_selector_f)( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | lib/pfcp/support/pfcp-tlv.py | 0 | /* * copyright (c) 2019 by sukchan lee <acetcom@gmail.com> * copyright (c) 2022 by sysmocom - s.f.m.c. gmbh <info@sysmoc | STRING |
| HIGH | lib/gtp/v2/support/gtp-tlv.py | 0 | /* * copyright (c) 2019 by sukchan lee <acetcom@gmail.com> * copyright (c) 2022 by sysmocom - s.f.m.c. gmbh <info@sysmoc | STRING |
| HIGH | lib/gtp/v1/support/gtp1-tlv.py | 0 | /* * copyright (c) 2019 by sukchan lee <acetcom@gmail.com> * copyright (c) 2022 by sysmocom - s.f.m.c. gmbh <info@sysmoc | STRING |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lib/pfcp/support/pfcp-tlv.py | 267 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 127 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 409 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 527 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 617 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 712 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 951 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1025 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1055 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1352 | CODE | |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 1671 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 127 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 409 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 527 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 617 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 712 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 951 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1025 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1055 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1304 | CODE | |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 1594 | CODE | |
| LOW | lib/gtp/v2/support/gtp-tlv.py | 127 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | lib/pfcp/support/pfcp-tlv.py | 487 | except: | CODE |
| HIGH | lib/pfcp/support/pfcp-tlv.py | 524 | except: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | lib/asn1c/common/per_support.c | 9 | // Absolutely nothing | COMMENT |
| MEDIUM | lib/asn1c/common/per_decoder.c | 5 | // Absolutely nothing | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | lib/gtp/v1/support/gtp1-tlv.py | 671 | if (h->e || h->s || h->pn) | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | misc/db/python/Open5GS.py | 2 | CODE | |
| LOW | misc/db/python/Open5GS.py | 3 | CODE | |
| LOW | misc/db/python/test_SchemaUpdater.py | 2 | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 828 | # Check if this item has an enum: block | COMMENT |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 828 | # Check if this item has an enum: block | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 540 | except Exception: | CODE |
| LOW | …/support/r19-20260402-openapitools-7.20.0/transform.py | 573 | except Exception: | CODE |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 540 | except Exception: | CODE |
| LOW | …/support/r17-20260316-openapitools-7.20.0/transform.py | 573 | except Exception: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | src/amf/gmm-handler.c | 607 | /* Robustness: many devices (and fuzzers) send a "placeholder" 5G-GUTI | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | lib/gtp/v2/support/gtp-tlv.py | 177 | CODE |