DivestOS/Patches/LineageOS-17.1/android_tools_apksig/360973-backport.patch

1443 lines
88 KiB
Diff
Raw Normal View History

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Michael Groover <mpgroover@google.com>
Date: Fri, 31 Mar 2023 14:30:21 -0500
Subject: [PATCH] Limit the number of supported v1 and v2 signers
The v1 and v2 APK Signature Schemes support multiple signers; this
was intended to allow multiple entities to sign an APK. Previously,
there were no limits placed on the number of signers that could
sign an APK, but this commit sets a hard limit of 10 supported
signers for these signature schemes to ensure a large number of
signers does not place undue burden on the platform.
Bug: 266580022
Test: gradlew test
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ea0632935646f2f6bf5822a5e9c97885269780bd)
Merged-In: I77f4218599511ff4f9f3790e4942a329d5a18da4
Change-Id: I77f4218599511ff4f9f3790e4942a329d5a18da4
---
.../java/com/android/apksig/ApkVerifier.java | 29 +++++
.../internal/apk/v1/V1SchemeSigner.java | 7 ++
.../internal/apk/v1/V1SchemeVerifier.java | 7 ++
.../internal/apk/v2/V2SchemeSigner.java | 6 ++
.../internal/apk/v2/V2SchemeVerifier.java | 4 +
.../com/android/apksig/ApkSignerTest.java | 100 ++++++++++++++++++
.../com/android/apksig/ApkVerifierTest.java | 31 ++++++
.../com/android/apksig/v1-only-10-signers.apk | Bin 0 -> 18389 bytes
.../com/android/apksig/v1-only-11-signers.apk | Bin 0 -> 22297 bytes
.../com/android/apksig/v2-only-10-signers.apk | Bin 0 -> 20688 bytes
.../com/android/apksig/v2-only-11-signers.apk | Bin 0 -> 24784 bytes
11 files changed, 184 insertions(+)
create mode 100644 src/test/resources/com/android/apksig/v1-only-10-signers.apk
create mode 100644 src/test/resources/com/android/apksig/v1-only-11-signers.apk
create mode 100644 src/test/resources/com/android/apksig/v2-only-10-signers.apk
create mode 100644 src/test/resources/com/android/apksig/v2-only-11-signers.apk
diff --git a/src/main/java/com/android/apksig/ApkVerifier.java b/src/main/java/com/android/apksig/ApkVerifier.java
index 3e1e7da..cfbc8d2 100644
--- a/src/main/java/com/android/apksig/ApkVerifier.java
+++ b/src/main/java/com/android/apksig/ApkVerifier.java
@@ -644,6 +644,15 @@ public class ApkVerifier {
}
private void mergeFrom(ApkSigningBlockUtils.Result source) {
+ if (source == null) {
+ return;
+ }
+ if (source.containsErrors()) {
+ mErrors.addAll(source.getErrors());
+ }
+ if (source.containsWarnings()) {
+ mWarnings.addAll(source.getWarnings());
+ }
switch (source.signatureSchemeVersion) {
case ApkSigningBlockUtils.VERSION_APK_SIGNATURE_SCHEME_V2:
mVerifiedUsingV2Scheme = source.verified;
@@ -921,6 +930,16 @@ public class ApkVerifier {
*/
JAR_SIG_NO_SIGNATURES("No JAR signatures"),
+ /**
+ * APK signature scheme v1 has exceeded the maximum number of jar signers.
+ * <ul>
+ * <li>Parameter 1: maximum allowed signers ({@code Integer})</li>
+ * <li>Parameter 2: total number of signers ({@code Integer})</li>
+ * </ul>
+ */
+ JAR_SIG_MAX_SIGNATURES_EXCEEDED(
+ "APK Signature Scheme v1 only supports a maximum of %1$d signers, found %2$d"),
+
/**
* APK does not contain any entries covered by JAR signatures.
*/
@@ -1349,6 +1368,16 @@ public class ApkVerifier {
"APK Signature Scheme v2 signature %1$s indicates the APK is signed using %2$s but "
+ "no such signature was found. Signature stripped?"),
+ /**
+ * APK signature scheme v2 has exceeded the maximum number of signers.
+ * <ul>
+ * <li>Parameter 1: maximum allowed signers ({@code Integer})</li>
+ * <li>Parameter 2: total number of signers ({@code Integer})</li>
+ * </ul>
+ */
+ V2_SIG_MAX_SIGNATURES_EXCEEDED(
+ "APK Signature Scheme V2 only supports a maximum of %1$d signers, found %2$d"),
+
/**
* APK Signature Scheme v2 signature contains no signers.
*/
diff --git a/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeSigner.java b/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeSigner.java
index f900211..05721ed 100644
--- a/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeSigner.java
+++ b/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeSigner.java
@@ -246,9 +246,16 @@ public abstract class V1SchemeSigner {
String createdBy)
throws NoSuchAlgorithmException, ApkFormatException, InvalidKeyException,
CertificateException, SignatureException {
+
+ int MAX_APK_SIGNERS = 10;
if (signerConfigs.isEmpty()) {
throw new IllegalArgumentException("At least one signer config must be provided");
}
+ if (signerConfigs.size() > MAX_APK_SIGNERS) {
+ throw new IllegalArgumentException(
+ "APK Signature Scheme v1 only supports a maximum of " + MAX_APK_SIGNERS + ", "
+ + signerConfigs.size() + " provided");
+ }
OutputManifestFile manifest =
generateManifestFile(
jarEntryDigestAlgorithm, jarEntryDigests, sourceManifestBytes);
diff --git a/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java b/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java
index 47d5b01..d633514 100644
--- a/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java
+++ b/src/main/java/com/android/apksig/internal/apk/v1/V1SchemeVerifier.java
@@ -16,6 +16,7 @@
package com.android.apksig.internal.apk.v1;
+
import com.android.apksig.ApkVerifier.Issue;
import com.android.apksig.ApkVerifier.IssueWithParams;
import com.android.apksig.apk.ApkFormatException;
@@ -275,6 +276,7 @@ public abstract class V1SchemeVerifier {
// * All JAR entries listed in JAR manifest are present in the APK.
// Identify signers
+ int MAX_APK_SIGNERS = 10;
List<Signer> signers = new ArrayList<>(sigBlockEntries.size());
for (CentralDirectoryRecord sigBlockEntry : sigBlockEntries) {
String sigBlockEntryName = sigBlockEntry.getName();
@@ -303,6 +305,11 @@ public abstract class V1SchemeVerifier {
result.addError(Issue.JAR_SIG_NO_SIGNATURES);
return;
}
+ if (signers.size() > MAX_APK_SIGNERS) {
+ result.addError(Issue.JAR_SIG_MAX_SIGNATURES_EXCEEDED, MAX_APK_SIGNERS,
+ signers.size());
+ return;
+ }
// Verify each signer's signature block file .(RSA|DSA|EC) against the corresponding
// signature file .SF. Any error encountered for any signer terminates verification, to
diff --git a/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeSigner.java b/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeSigner.java
index d8e4723..a423bdd 100644
--- a/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeSigner.java
+++ b/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeSigner.java
@@ -162,6 +162,12 @@ public abstract class V2SchemeSigner {
throws NoSuchAlgorithmException, InvalidKeyException, SignatureException {
// FORMAT:
// * length-prefixed sequence of length-prefixed signer blocks.
+ int MAX_APK_SIGNERS = 10;
+ if (signerConfigs.size() > MAX_APK_SIGNERS) {
+ throw new IllegalArgumentException(
+ "APK Signature Scheme v2 only supports a maximum of " + MAX_APK_SIGNERS + ", "
+ + signerConfigs.size() + " provided");
+ }
List<byte[]> signerBlocks = new ArrayList<>(signerConfigs.size());
int signerNumber = 0;
diff --git a/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeVerifier.java b/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeVerifier.java
index 51c40bd..e3e7e8d 100644
--- a/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeVerifier.java
+++ b/src/main/java/com/android/apksig/internal/apk/v2/V2SchemeVerifier.java
@@ -184,6 +184,7 @@ public abstract class V2SchemeVerifier {
int maxSdkVersion,
ApkSigningBlockUtils.Result result) throws NoSuchAlgorithmException {
ByteBuffer signers;
+ int MAX_APK_SIGNERS = 10;
try {
signers = ApkSigningBlockUtils.getLengthPrefixedSlice(apkSignatureSchemeV2Block);
} catch (ApkFormatException e) {
@@ -225,6 +226,9 @@ public abstract class V2SchemeVerifier {
return;
}
}
+ if (signerCount > MAX_APK_SIGNERS) {
+ result.addError(Issue.V2_SIG_MAX_SIGNATURES_EXCEEDED, MAX_APK_SIGNERS, signerCount);
+ }
}
/**
diff --git a/src/test/java/com/android/apksig/ApkSignerTest.java b/src/test/java/com/android/apksig/ApkSignerTest.java
index 1434017..729d96f 100644
--- a/src/test/java/com/android/apksig/ApkSignerTest.java
+++ b/src/test/java/com/android/apksig/ApkSignerTest.java
@@ -635,6 +635,106 @@ public class ApkSignerTest {
} catch (ApkFormatException expected) {}
}
+ @Test
+ public void testV1SigningAllowedWithMaximumNumberOfSigners() throws Exception {
+ // The APK Signature Scheme v1 supports a maximum of 10 signers; this test verifies a
+ // signing config with the maximum number of signers is allowed to sign the APK.
+ List<ApkSigner.SignerConfig> signers = List.of(
+ getDefaultSignerConfigFromResources("dsa-1024"),
+ getDefaultSignerConfigFromResources("dsa-2048"),
+ getDefaultSignerConfigFromResources("dsa-3072"),
+ getDefaultSignerConfigFromResources("rsa-1024"),
+ getDefaultSignerConfigFromResources("rsa-2048"),
+ getDefaultSignerConfigFromResources("rsa-3072"),
+ getDefaultSignerConfigFromResources("rsa-4096"),
+ getDefaultSignerConfigFromResources("rsa-8192"),
+ getDefaultSignerConfigFromResources("ec-p256"),
+ getDefaultSignerConfigFromResources("ec-p384")
+ );
+ sign("original.apk",
+ new ApkSigner.Builder(signers)
+ .setV1SigningEnabled(true)
+ .setV2SigningEnabled(false)
+ .setV3SigningEnabled(false)
+ .setV4SigningEnabled(false));
+ }
+
+ @Test
+ public void testV1SigningRejectedWithMoreThanMaximumNumberOfSigners() throws Exception {
+ // This test ensures a v1 signing config with more than the maximum supported number
+ // of signers will fail to sign.
+ List<ApkSigner.SignerConfig> signers = List.of(
+ getDefaultSignerConfigFromResources("dsa-1024"),
+ getDefaultSignerConfigFromResources("dsa-2048"),
+ getDefaultSignerConfigFromResources("dsa-3072"),
+ getDefaultSignerConfigFromResources("rsa-1024"),
+ getDefaultSignerConfigFromResources("rsa-2048"),
+ getDefaultSignerConfigFromResources("rsa-3072"),
+ getDefaultSignerConfigFromResources("rsa-4096"),
+ getDefaultSignerConfigFromResources("rsa-8192"),
+ getDefaultSignerConfigFromResources("ec-p256"),
+ getDefaultSignerConfigFromResources("ec-p384"),
+ getDefaultSignerConfigFromResources("ec-p521")
+ );
+ assertThrows(IllegalArgumentException.class, () ->
+ sign("original.apk",
+ new ApkSigner.Builder(signers)
+ .setV1SigningEnabled(true)
+ .setV2SigningEnabled(false)
+ .setV3SigningEnabled(false)
+ .setV4SigningEnabled(false)));
+ }
+
+ @Test
+ public void testV2SigningAllowedWithMaximumNumberOfSigners() throws Exception {
+ // The APK Signature Scheme v2 supports a maximum of 10 signers; this test verifies a
+ // signing config with the maximum number of signers is allowed to sign the APK.
+ List<ApkSigner.SignerConfig> signers = List.of(
+ getDefaultSignerConfigFromResources("dsa-1024"),
+ getDefaultSignerConfigFromResources("dsa-2048"),
+ getDefaultSignerConfigFromResources("dsa-3072"),
+ getDefaultSignerConfigFromResources("rsa-1024"),
+ getDefaultSignerConfigFromResources("rsa-2048"),
+ getDefaultSignerConfigFromResources("rsa-3072"),
+ getDefaultSignerConfigFromResources("rsa-4096"),
+ getDefaultSignerConfigFromResources("rsa-8192"),
+ getDefaultSignerConfigFromResources("ec-p256"),
+ getDefaultSignerConfigFromResources("ec-p384")
+ );
+ sign("original.apk",
+ new ApkSigner.Builder(signers)
+ .setV1SigningEnabled(false)
+ .setV2SigningEnabled(true)
+ .setV3SigningEnabled(false)
+ .setV4SigningEnabled(false));
+ }
+
+ @Test
+ public void testV2SigningRejectedWithMoreThanMaximumNumberOfSigners() throws Exception {
+ // This test ensures a v2 signing config with more than the maximum supported number
+ // of signers will fail to sign.
+ List<ApkSigner.SignerConfig> signers = List.of(
+ getDefaultSignerConfigFromResources("dsa-1024"),
+ getDefaultSignerConfigFromResources("dsa-2048"),
+ getDefaultSignerConfigFromResources("dsa-3072"),
+ getDefaultSignerConfigFromResources("rsa-1024"),
+ getDefaultSignerConfigFromResources("rsa-2048"),
+ getDefaultSignerConfigFromResources("rsa-3072"),
+ getDefaultSignerConfigFromResources("rsa-4096"),
+ getDefaultSignerConfigFromResources("rsa-8192"),
+ getDefaultSignerConfigFromResources("ec-p256"),
+ getDefaultSignerConfigFromResources("ec-p384"),
+ getDefaultSignerConfigFromResources("ec-p521")
+ );
+ assertThrows(IllegalArgumentException.class, () ->
+ sign("original.apk",
+ new ApkSigner.Builder(signers)
+ .setV1SigningEnabled(false)
+ .setV2SigningEnabled(true)
+ .setV3SigningEnabled(false)
+ .setV4SigningEnabled(false)));
+ }
+
@Test
public void testWeirdZipCompressionMethod() throws Exception {
// Any ZIP compression method other than STORED is treated as DEFLATED by Android.
diff --git a/src/test/java/com/android/apksig/ApkVerifierTest.java b/src/test/java/com/android/apksig/ApkVerifierTest.java
index 351d0a8..2392b88 100644
--- a/src/test/java/com/android/apksig/ApkVerifierTest.java
+++ b/src/test/java/com/android/apksig/ApkVerifierTest.java
@@ -239,6 +239,20 @@ public class ApkVerifierTest {
"v1-only-with-dsa-sha256-2.16.840.1.101.3.4.3.2-%s.apk", DSA_KEY_NAMES);
}
+ @Test
+ public void testV1MaxSupportedSignersAccepted() throws Exception {
+ // The APK Signature Scheme V1 supports a maximum of 10 signers; this test ensures an
+ // APK signed with that many signers successfully verifies.
+ assertVerified(verify("v1-only-10-signers.apk"));
+ }
+
+ @Test
+ public void testV1MoreThanMaxSupportedSignersRejected() throws Exception {
+ // This test ensure an APK signed with more than the supported number of signers fails
+ // to verify.
+ assertVerificationFailure("v1-only-11-signers.apk", Issue.JAR_SIG_MAX_SIGNATURES_EXCEEDED);
+ }
+
@Test
public void testV2StrippedRejected() throws Exception {
// APK signed with v1 and v2 schemes, but v2 signature was stripped from the file (by using
@@ -630,6 +644,23 @@ public class ApkVerifierTest {
Issue.V2_SIG_NO_SUPPORTED_SIGNATURES);
}
+ @Test
+ public void testV2MaxSupportedSignersAccepted() throws Exception {
+ // The APK Signature Scheme v2 supports a maximum of 10 signers; this test ensures an
+ // APK signed with that many signers successfully verifies.
+ assertVerified(verifyForMinSdkVersion("v2-only-10-signers.apk", AndroidSdkVersion.N));
+ }
+
+ @Test
+ public void testV2MoreThanMaxSupportedSignersRejected() throws Exception {
+ // This test ensure an APK signed with more than the supported number of signers fails
+ // to verify.
+ assertVerificationFailure(
+ verifyForMinSdkVersion("v2-only-11-signers.apk", AndroidSdkVersion.N),
+ Issue.V2_SIG_MAX_SIGNATURES_EXCEEDED);
+ }
+
+
@Test
public void testCorrectCertUsedFromPkcs7SignedDataCertsSet() throws Exception {
// Obtained by prepending the rsa-1024 certificate to the PKCS#7 SignedData certificates set
diff --git a/src/test/resources/com/android/apksig/v1-only-10-signers.apk b/src/test/resources/com/android/apksig/v1-only-10-signers.apk
new file mode 100644
index 0000000000000000000000000000000000000000..198beeb651079d24338984de7f32e8e0c7b4ff78
GIT binary patch
literal 18389
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
literal 0
HcmV?d00001
diff --git a/src/test/resources/com/android/apksig/v1-only-11-signers.apk b/src/test/resources/com/android/apksig/v1-only-11-signers.apk
new file mode 100644
index 0000000000000000000000000000000000000000..95e6c61e2f6f1b75c0941c21a8e728d60821894a
GIT binary patch
literal 22297
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
literal 0
HcmV?d00001
diff --git a/src/test/resources/com/android/apksig/v2-only-10-signers.apk b/src/test/resources/com/android/apksig/v2-only-10-signers.apk
new file mode 100644
index 0000000000000000000000000000000000000000..ad34c14ced8a53dd4c5cbe18a147de6e99264bda
GIT binary patch
literal 20688
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
literal 0
HcmV?d00001
diff --git a/src/test/resources/com/android/apksig/v2-only-11-signers.apk b/src/test/resources/com/android/apksig/v2-only-11-signers.apk
new file mode 100644
index 0000000000000000000000000000000000000000..674b6e4d7d67810c70aaf4255db90b710bf37d23
GIT binary patch
literal 24784
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
Tg9RFHk9CIzHQe49++O|{heuzh
literal 0
HcmV?d00001