
integration examples for the CVE-2020-25860 fix
Ce dépôt contient des exemples pour simplifier l'intégration de la mise à jour RAUC dans des projets existants. Vous pouvez vous abonner à https://github.com/rauc/rauc-1.5-integration/issues/1 pour recevoir des notifications des mises à jour importantes de ce dépôt et de l'intégration dans les systèmes de construction en amont.
Les exemples ont été dérivés des versions amont actuelles, donc un certain ajustement peut être nécessaire en fonction de l'âge du projet existant.
L'avis qui sera publié le 21 décembre est disponible sous https://github.com/rauc/rauc-1.5-integration/blob/master/CVE-2020-25860.md. Ce dépôt sera également rendu public à ce moment-là.
Si l'archive rauc-1.5.tar.xz n'est pas encore disponible en téléchargement, copiez l'archive depuis ce dépôt vers votre DL_DIR (généralement défini dans votre build/conf/local.conf).
Copiez la recette mise à jour depuis oe_yocto/recipes-rauc-1.5/rauc/* vers le calque spécifique au projet approprié, en veillant à conserver les personnalisations existantes (telles que system.conf ou ca.cert.pem).
Copiez oe_yocto/classes/verity_bundle.bbclass vers le répertoire classes/ de ce calque (vous devrez peut-être créer ce répertoire). Cette classe remplace bundle.bbclass du calque meta-rauc, avec une prise en charge supplémentaire pour la création de bundles au format verity. Le nom différent est utilisé pour éviter les problèmes d'ordre de recherche des classes.
Si vous souhaitez construire des bundles au format verity, utilisez inherit verity_bundle au lieu de inherit bundle dans votre recette de bundle et définissez RAUC_BUNDLE_FORMAT = "verity" pour sélectionner le format. Un exemple est disponible sous oe_yocto/recipes-rauc-1.5/bundles/core-bundle-minimal-verity.bb.
Si l'archive rauc-1.5.tar.xz n'est pas encore disponible en téléchargement, copiez l'archive depuis ce dépôt vers votre répertoire source PTXdist.
Copiez le répertoire ptxdist/rules/rauc.* vers rules/ dans votre BSP. Cela donne un binaire RAUC mis à jour pour la cible et l'hôte.
Si vous utilisez la règle de bundle RAUC par défaut de PTXdist, copiez ptxdist/config/images/rauc.config vers config/images/ dans votre BSP. Le modèle de manifeste inclus configure le format de bundle plain, donc modifiez-le si nécessaire.
Si vous utilisez un bundle personnalisé et souhaitez passer au format verity, vous devrez mettre à jour vous-même le manifeste correspondant.
Si l'archive rauc-1.5.tar.xz n'est pas encore disponible en téléchargement, copiez l'archive depuis ce dépôt vers votre répertoire dl/rauc/.
Copiez buildroot/package/rauc/rauc.* vers package/rauc/ dans votre répertoire de travail Buildroot. Cela donne un binaire RAUC mis à jour pour la cible et l'hôte.
Comme Buildroot n'automatise pas la construction de bundles de mise à jour, si vous souhaitez utiliser le format de bundle verity, vous devrez mettre à jour votre manifeste manuellement.
RAUC v1.3 (publié le 2020-04-23) a supprimé la prise en charge des versions d'OpenSSL antérieures à 1.1.1, car elles n'étaient plus supportées par le projet OpenSSL :
Si votre système utilise encore une version non supportée d'OpenSSL et que la mise à jour vers 1.1.1 avec RAUC 1.5 n'est pas réalisable, un patch de rétroportage (0001-backport-to-OpenSSL-1.0.2.patch) est disponible. Notez que ce patch n'a pas la même étendue de tests que la version 1.5.
Dans RAUC 1.5, l'ioctl du périphérique loop LOOP_SET_BLOCK_SIZE est utilisé pour définir la taille de bloc logique à 4096 pour l'optimisation des performances. Ne pas pouvoir le définir n'est pas critique et est seulement signalé par un message de niveau debug.
Mais comme le symbole LOOP_SET_BLOCK_SIZE n'existe pas dans les versions du noyau antérieures à 4.14, la compilation avec ces en-têtes de noyau plus anciens échouera. Pour résoudre cela, le symbole doit optionnellement être défini dans RAUC lui-même. Un patch pour cela (0001-src-mount.c-fix-build-with-kernel-4.14.patch) est disponible (depuis https://github.com/rauc/rauc/pull/673).
Le correctif fera également partie de RAUC 1.5.1.