Adobe a publié une mise à niveau de sécurité pour Adobe Campaign v6.11 (16.11.8790). Cette mise à niveau corrige un contournement critique de validation des entrées dans les applications Web (Microsite, Survey, etc.). Il peut être exploité pour l’écriture de données arbitraires dans la base de données (CVE -2017-2989).

Description

Ce document concerne les instances de Adobe Campaign v6.0.x.

Ce qui suit peut également être utilisé pour les générations v6.1 jusqu’à 8767, mais dans ce cas, une mise à niveau est vivement conseillée

Remarque :

Même sur la dernière version 6.1.1, seule la version 6.x (5 et HTML au webkit html PDF) est réparée Mettez à jour vos applications Web par rapport à ce moteur de traduction. Sinon, vous pouvez suivre la procédure de la limitation v6.0 ci-dessous.

Screen_Shot_2017-03-09_at_5_47_24_PM

Première prévention : protection manuelle de toutes les activités de stockage

Vous pouvez :

  • Remplacez toutes les activités de stockage par votre code JavaScript (définissez vous-même les clés de sensibilité).
  • Ajoutez une activité de script avant tout pour effectuer le nettoyage (forcer les clés et opérations de rapprochement).

Deuxième prévention : protection manuelle de toutes les activités de stockage

Vous pouvez corriger deux fichiers de serveur javascript :

  • formbase.js (datakit/xtk/fra/js/server/formbase.js). Les fonctions à corriger sont les suivantes :
    • FormBase.prototype.loadContext
    • FormBase.prototype.pushActivityHistory
    • FormBase.prototype.popActivityHistory
  • webApp.js (/datakit/xtk/fra/js/server/webApp.js). Les fonctions à corriger sont les suivantes :
    • PreFillActivity.prototype.checkIdentifierImpl
    • PreFillActivity.prototype.loadEntityImpl
    • WriterActivity.prototype.write

 

Vous pouvez trouver ces correctifs dans le Centre de téléchargement de Extranet.

Protection supplémentaire : restreindre les droits d’opérateur « dépendants » (éviter la suppression d’un autre élément que le destinataire)

Vous pouvez également supprimer les droits d’administration de l’opérateur « Moderne ». Les instructions détaillées sont disponibles dans la documentation

  1. Créez un groupe de sécurité « webapp ».
  2. Supprimez les droits d’administration nommés de l’opérateur « webapp ».
  3. Ajoutez l’opérateur « webapp » au groupe de sécurité « webapp ».
  4. Ajoutez le groupe de sécurité « webapp » pour chaque dossier de destinataire (ou profil) pouvant être renseigné par des applications Web ou des enquêtes.

Ou importez le package suivant :

<package ignoreWarnings="true">
  <entities schema="xtk:group">
    <group label="Web Application agents" name="webapp" type="1">
      <folder _operation="none" name="xtkGroup"/>
      <operatorGroup>
        <group _operation="none" name="webapp" type="1"/>
        <operator _operation="none" name="webapp" type="0"/>
      </operatorGroup>
    </group>
  </entities>
 
  <entities schema="xtk:operatorGroup">
    <operatorGroup _operation="delete">
      <group _operation="none" name="admin" type="2"/>
      <operator _operation="none" name="webapp" type="0"/>
    </operatorGroup>
  </entities>
 
  <installScript>
    var folders = NLWS.xtkQueryDef.create({queryDef:{
      schema: "xtk:folder",
      operation: "select",
      select: { node: [
        {expr: "@name"}, {expr: "@id"}, {expr: "@model"}
      ]},
      where: { condition: [
        {expr:"@model IN ('nmsRecipient', 'nmsVisitor', 'nmsPurl')"}
      ]}
    }}).ExecuteQuery();
     
    for each( folder in folders.getElements("folder") ) {
      if( folder.$model == "nmsPurl" )
        folderRights = "read";
      else
        folderRights = "read|write";
      NLWS.xtkSession.Write({folder: {
          id: folder.$id,
          xtkschema: "xtk:folder",
          _operation: "update",
          rights: {
             _operation:"insertOrUpdate",
             propagate: "true",
             rights:    folderRights,
             "folder-id": folder.$id,
             operator: {
                name: "webapp",
                type: "1",
                _operation: "none"
             }
           }
         }
      });
    }
  </installScript>
 
</package>

Comme expliqué dans la documentation, vous pouvez également créer différents opérateurs « webapp » pour améliorer la sécurité.

Remarque :

Si vous souhaitez autoriser les applications Web à supprimer des destinataires, vous devez remplacer les droits : « lire|écrire|effacer » par droits : « lire|écrire|effacer » dans le package ci-dessus.

Ce produit est distribué sous licence Creative Commons Attribution - Pas d’utilisation commerciale - Partage à l’identique 3.0 non transposé  Les publications Twitter™ et Facebook ne sont pas couvertes par les dispositions Creative Commons.

Mentions légales   |   Politique de confidentialité en ligne