Osmocom Mobile Switching Centre
Go to file
Vadim Yanitskiy a79aac0113 libmsc/gsm_04_08.c: fix: verify MI before calling vlr_subscr_rx_id_resp()
During the last congress, we have noticed that OsmoMSC crashes
on receipt of malformed MM Identity Response messages:

  BSSAP
      Message Type: Direct Transfer (0x01)
      Data Link Connection Identifier
          00.. .... = Control Channel: not further specified (0x0)
          ..00 0... = Spare: 0x0
          .... .000 = SAPI: RR/MM/CC (0x0)
      Length: 11
  GSM A-I/F DTAP - Identity Response
      Protocol Discriminator: Mobility Management messages (5)
          .... 0101 = Protocol discriminator: Mobility Management messages (0x5)
          0000 .... = Skip Indicator: No indication of selected PLMN (0)
      01.. .... = Sequence number: 1
      ..01 1001 = DTAP Mobility Management Message Type: Identity Response (0x19)
      Mobile Identity - Format Unknown
          Length: 8
          .... 1... = Odd/even indication: Odd number of identity digits
          .... .111 = Mobile Identity Type: Unknown (7)  <-- This makes OsmoMSC crash
              [Expert Info (Warning/Protocol): Unknown format 7]
                  [Unknown format 7]
                  [Severity level: Warning]
                  [Group: Protocol]

The value '111'B is not a valid Mobile Identity type, and shall be
considered as reserved according to 3GPP TS 24.008, section 10.5.1.4.
Later on it was discovered that '000'B also crashes OsmoMSC in the same way.

The crash itself is provoked by OSMO_ASSERT(0) in vlr_subscr_rx_id_resp().
Let's keep that assert in there, and make sure that:

  - on receipt of MM Identity Response, Mobile Identity type
    matches the one in MM Identity Request;

  - on receipt of RR Ciphering Mode Complete, Mobile Identity
    contains IMEI(SV) if present.

Change-Id: Ica4c90b8eb4d90325313c6eb400fa4a6bc5df825
TTCN-3 test case: I62f23355eb91df2edf9dc837c928cb86b530b743
Fixes: OS#4340
2020-01-05 11:23:09 +00:00
contrib contrib/jenkins.sh: run "make maintainer-clean" 2019-07-11 03:42:36 +00:00
debian Bump version: 1.5.0.72-6e72-dirty → 1.6.0 2020-01-03 18:51:37 +01:00
doc counters: polish documentation of cm_service_request / paging_resp 2019-12-02 08:44:42 +00:00
include libmsc/gsm_04_08.c: fix: verify MI before calling vlr_subscr_rx_id_resp() 2020-01-05 11:23:09 +00:00
m4 move openbsc/* to repos root 2017-07-12 23:17:10 +00:00
src libmsc/gsm_04_08.c: fix: verify MI before calling vlr_subscr_rx_id_resp() 2020-01-05 11:23:09 +00:00
tests osmoappdesc.py, tests: switch to python 3 2019-12-12 09:29:19 +00:00
.gitignore rename bscconfig.h to config.h, cleanup 2019-05-08 17:02:32 +02:00
.gitreview update .gitreview to new repo url 2017-08-08 17:26:28 +02:00
.mailmap add .mailmap file for mapping git author name/mail in shortlog 2016-08-08 17:40:28 +00:00
AUTHORS move openbsc/* to repos root 2017-07-12 23:17:10 +00:00
COPYING move openbsc/* to repos root 2017-07-12 23:17:10 +00:00
Makefile.am Fix DISTCHECK_CONFIGURE_FLAGS override 2018-12-04 15:37:37 +01:00
README rewrite README 2017-09-06 16:33:41 +02:00
README.vty-tests Remove obsolete ./configure option 2017-11-29 14:24:54 +00:00
configure.ac Bump version: 1.5.0.72-6e72-dirty → 1.6.0 2020-01-03 18:51:37 +01:00
git-version-gen git-version-gen: Don't check for .git directory 2018-07-24 18:05:46 +02:00
osmoappdesc.py osmoappdesc.py, tests: switch to python 3 2019-12-12 09:29:19 +00:00

README

About OsmoMSC
=============

OsmoMSC originated from the OpenBSC project, which started as a minimalistic
all-in-one implementation of the GSM Network. In 2017, OpenBSC had reached
maturity and diversity (including M3UA SIGTRAN and 3G support in the form of
IuCS and IuPS interfaces) that naturally lead to a separation of the all-in-one
approach to fully independent separate programs as in typical GSM networks.

OsmoMSC was one of the parts split off from the old openbsc.git. Before, it was
the libmsc part of the old OsmoNITB. Since a true A interface and IuCS for 3G
support is available, OsmoMSC exists only as a separate standalone entity.

OsmoMSC exposes
- GSUP towards OsmoHLR (or a MAP proxy);
- A over IP towards a BSC (e.g. OsmoBSC);
- IuCS towards an RNC or HNB-GW (e.g. OsmoHNBGW) for 3G voice;
- MNCC (Mobile Network Call Control derived from GSM TS 04.07);
- SMPP 3.4 (Short Message Peer-to-Peer);
- The Osmocom typical telnet VTY and CTRL interfaces.

Find OsmoMSC issue tracker and wiki online at
https://osmocom.org/projects/osmomsc
https://osmocom.org/projects/osmomsc/wiki