<matrixBuild _class='hudson.matrix.MatrixBuild'><action _class='hudson.model.CauseAction'><cause _class='org.jenkinsci.plugins.workflow.support.steps.build.BuildUpstreamCause'><shortDescription>Started by upstream project "gerrit-pysim" build number 3,057</shortDescription><upstreamBuild>3057</upstreamBuild><upstreamProject>gerrit-pysim</upstreamProject><upstreamUrl>job/gerrit-pysim/</upstreamUrl></cause></action><action></action><action _class='hudson.model.ParametersAction'><parameter _class='hudson.model.StringParameterValue'><name>COMMENT_TYPE</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>DISTRO</name><value></value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_BRANCH</name><value>master</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_CHANGE_NUMBER</name><value>42624</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_HOST</name><value>gerrit.osmocom.org</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_NUMBER</name><value>1</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_REVISION</name><value>816b31eb07ec975275a03fa0f521d228d44ac6f4</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PATCHSET_UPLOADER_NAME</name><value>dexter</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PORT</name><value>29418</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_PROJECT</name><value>pysim</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REFSPEC</name><value>refs/changes/24/42624/1</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>GERRIT_REPO_URL</name><value>ssh://jenkins@gerrit.osmocom.org:29418/pysim</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PIPELINE_BUILD_URL</name><value>https://jenkins.osmocom.org/jenkins/job/gerrit-pysim/3057/</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>PROJECT_NAME</name><value>pysim</value></parameter><parameter _class='hudson.model.StringParameterValue'><name>BRANCH_CI</name><value>master</value></parameter></action><action _class='jenkins.metrics.impl.TimeInQueueAction'><blockedDurationMillis>0</blockedDurationMillis><blockedTimeMillis>0</blockedTimeMillis><buildableDurationMillis>0</buildableDurationMillis><buildableTimeMillis>0</buildableTimeMillis><buildingDurationMillis>996748</buildingDurationMillis><executingTimeMillis>996748</executingTimeMillis><executorUtilization>1.0</executorUtilization><subTaskCount>0</subTaskCount><waitingDurationMillis>6150</waitingDurationMillis><waitingTimeMillis>6150</waitingTimeMillis></action><action></action><action _class='hudson.plugins.git.util.BuildData'><buildsByBranchName><_ _class='hudson.plugins.git.util.Build'><buildNumber>2772</buildNumber><marked><SHA1>167d6aca365b64c84b2485a70cb43bbf3a4e4f2d</SHA1><branch><SHA1>167d6aca365b64c84b2485a70cb43bbf3a4e4f2d</SHA1><name>**</name></branch></marked><revision><SHA1>167d6aca365b64c84b2485a70cb43bbf3a4e4f2d</SHA1><branch><SHA1>167d6aca365b64c84b2485a70cb43bbf3a4e4f2d</SHA1><name>**</name></branch></revision></_><master _class='hudson.plugins.git.util.Build'><buildNumber>3050</buildNumber><marked><SHA1>816b31eb07ec975275a03fa0f521d228d44ac6f4</SHA1><branch><SHA1>816b31eb07ec975275a03fa0f521d228d44ac6f4</SHA1><name>master</name></branch></marked><revision><SHA1>816b31eb07ec975275a03fa0f521d228d44ac6f4</SHA1><branch><SHA1>816b31eb07ec975275a03fa0f521d228d44ac6f4</SHA1><name>master</name></branch></revision></master></buildsByBranchName><lastBuiltRevision><SHA1>816b31eb07ec975275a03fa0f521d228d44ac6f4</SHA1><branch><SHA1>816b31eb07ec975275a03fa0f521d228d44ac6f4</SHA1><name>master</name></branch></lastBuiltRevision><remoteUrl>ssh://jenkins@gerrit.osmocom.org:29418/pysim</remoteUrl><scmName></scmName></action><action></action><action></action><action _class='org.jenkinsci.plugins.displayurlapi.actions.RunDisplayAction'></action><building>false</building><displayName>#3050</displayName><duration>996748</duration><estimatedDuration>1081954</estimatedDuration><fullDisplayName>gerrit-pysim-build #3050</fullDisplayName><id>3050</id><inProgress>false</inProgress><keepLog>false</keepLog><number>3050</number><queueId>89964</queueId><result>SUCCESS</result><timestamp>1776330561869</timestamp><url>https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/3050/</url><builtOn></builtOn><changeSet _class='hudson.plugins.git.GitChangeSetList'><item _class='hudson.plugins.git.GitChangeSet'><affectedPath>pySim-prog.py</affectedPath><commitId>816b31eb07ec975275a03fa0f521d228d44ac6f4</commitId><timestamp>1776253811000</timestamp><author><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/pmaier</absoluteUrl><fullName>pmaier@sysmocom.de</fullName></author><authorEmail>pmaier@sysmocom.de</authorEmail><comment>pySim-prog: fix Insecure PRNG for SIM Authentication Keys (CWE-338)

Root Cause:
pySim-prog.py uses Python's random module (Mersenne Twister MT19937) to
generate Ki and OPC — the root authentication keys for SIM cards. MT19937
is a deterministic PRNG that is not cryptographically secure. Its internal
state (624 × 32-bit words, 19,937 bits) can be fully recovered after
observing 624 consecutive outputs.

Impact:
1. SIM Card Cloning: An attacker who determines the PRNG state can predict
all Ki/OPC values generated before and after. With these keys, SIM cards
can be cloned.
2. Network Authentication Bypass: Ki/OPC are used in the Milenage algorithm
for 3G/4G/5G authentication. Predictable keys mean an attacker can
authenticate as any subscriber whose SIM was provisioned with the weak RNG.
3. Batch Compromise: In bulk provisioning scenarios (pySim-prog's primary
use case), hundreds or thousands of SIMs may be programmed sequentially.
Compromising one batch means recovering the PRNG state to predict all keys.

Fix:
Replace random.randrange() with os.urandom()

Change-Id: Id3e00d3ec5386f17c1525cacfc7d3f5bba43381f
</comment><date>2026-04-15 13:50:11 +0200</date><id>816b31eb07ec975275a03fa0f521d228d44ac6f4</id><msg>pySim-prog: fix Insecure PRNG for SIM Authentication Keys (CWE-338)</msg><path><editType>edit</editType><file>pySim-prog.py</file></path></item><kind>git</kind></changeSet><culprit><absoluteUrl>https://jenkins.osmocom.org/jenkins/user/pmaier</absoluteUrl><fullName>pmaier@sysmocom.de</fullName></culprit><run><number>3050</number><url>https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/JOB_TYPE=distcheck,a1=default,a3=default,a4=default,label=osmocom-gerrit/3050/</url></run><run><number>3050</number><url>https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/JOB_TYPE=docs,a1=default,a3=default,a4=default,label=osmocom-gerrit/3050/</url></run><run><number>3050</number><url>https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/JOB_TYPE=pylint,a1=default,a3=default,a4=default,label=osmocom-gerrit/3050/</url></run><run><number>3050</number><url>https://jenkins.osmocom.org/jenkins/job/gerrit-pysim-build/JOB_TYPE=test,a1=default,a3=default,a4=default,label=simtester/3050/</url></run></matrixBuild>