f3802d77cc070d91f83b3fa413163c25e3c0d7fa
Add Security Mode Reject lib/unit test and adopt in stack This MR is adding the library for the NAS Security Mode Reject, and relevant unit test. The UE shall send a SECURITY MODE REJECT containing a 5GMM cause that typically indicates one of the following cause values: (23) UE security capabilities mismatch. (24) security mode rejected, unspecified - The message shall be protected if a security context is available. - The message is adopted in the handling of Security Mode Command failure. See 3GPP TS 24.501 5.4.2.5 "NAS security mode command not accepted by the UE". This MR includes changes from !3262: > This patch series addresses a security issue where the UE improperly > accepts a Security Mode Command (SMC) without an authentication header > (Security Header 0). This behavior violates TS 24.501 and enables an > attacker to bypass authentication, set integrity protection to NULL > (NIA0), and reconfigure the UE without proper verification. > > We identified the following issues: > > 1. The UE currently accepts unauthenticated SMC messages, even > allowing NIA0 and EIA0 to be set outside emergency mode. > 2. When applying NIA0, the MAC field remains uninitialized, > consistently containing the sequence 0xFF3F0000, making it feasible > to bypass authentication and enforce insecure configurations. > 3. The UE does not properly signal security mode failures to the Core > Network. > > This patch series tries to address the above-mentioned issues: > > 1. Reject unauthenticated SMC messages, enforcing the requirement that > they must be integrity-protected. > 2. Validate MAC before applying security settings, ensuring that only > authenticated messages are accepted. > 3. Tear down the security context if an integrity check fails. > 4. Introduce the Security Mode Reject message to inform the Core > Network of failed SMC procedures, as required by TS 24.501.
OpenAirInterface License
It is distributed under OAI Public License V1.1.
The license information is distributed under LICENSE file in the same directory.
Please see NOTICE file for third party software that is included in the sources.
Where to Start
- General overview of documentation
- The implemented features
- System Requirements for Using OAI Stack
- How to build
- How to run the modems
Not all information is available in a central place, and information for specific sub-systems might be available in the corresponding sub-directories. To find all READMEs, this command might be handy:
find . -iname "readme*"
RAN repository structure
The OpenAirInterface (OAI) software is composed of the following parts:
openairinterface5g
├── charts
├── ci-scripts : Meta-scripts used by the OSA CI process. Contains also configuration files used day-to-day by CI.
├── CMakeLists.txt : Top-level CMakeLists.txt for building
├── cmake_targets : Build utilities to compile (simulation, emulation and real-time platforms), and generated build files.
├── common : Some common OAI utilities, some other tools can be found at openair2/UTILS.
├── doc : Documentation
├── docker : Dockerfiles to build for Ubuntu and RHEL
├── executables : Top-level executable source files (gNB, eNB, ...)
├── maketags : Script to generate emacs tags.
├── nfapi : (n)FAPI code for MAC-PHY interface
├── openair1 : Layer 1 (3GPP LTE Rel-10/12 PHY, NR Rel-15 PHY)
├── openair2 : Layer 2 (3GPP LTE Rel-10 MAC/RLC/PDCP/RRC/X2AP, LTE Rel-14 M2AP, NR Rel-15+ MAC/RLC/PDCP/SDAP/RRC/X2AP/F1AP/E1AP), E2AP
├── openair3 : Layer 3 (3GPP LTE Rel-10 S1AP/GTP, NR Rel-15 NGAP/GTP)
├── openshift : OpenShift helm charts for some deployment options of OAI
├── radio : Drivers for various radios such as USRP, AW2S, RFsim, 7.2 FHI, ...
├── targets : Some configuration files; only historical relevance, and might be deleted in the future
└── tools : Tools for use by the developers/ci machines: code analysis and formatting
How to get support from the OAI Community
You can ask your question on the mailing lists.
Your email should contain below information:
- A clear subject in your email.
- For all the queries there should be [Query] in the subject of the email and for problems there should be [Problem].
- In case of a problem, add a small description.
- Do not share any photos unless you want to share a diagram.
- OAI gNB/DU/CU/CU-CP/CU-UP configuration file in
.confformat only. - Logs of OAI gNB/DU/CU/CU-CP/CU-UP in
.logor.txtformat only. - In case your question is related to performance, include a small description of the machine (Operating System, Kernel version, CPU, RAM and networking card) and diagram of your testing environment.
- Known/open issues are present on GitLab, so keep checking.
Always remember a structured email will help us understand your issues quickly.
Languages
C
91.8%
CMake
2.9%
C++
1.9%
TeX
1%
Python
1%
Other
1.1%
