[Windows Desktop] Auto-review rejects an authorized 16,121-byte transfer, alleging expanded content
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 125k
- Forks
- 19.4k
- PR merge metrics
- PR metrics pending
Description
Environnement
- Codex Desktop sous Windows.
- Version exacte de l’application et build Windows : non relevés, à compléter.
- Abonnement : ChatGPT Pro 20x, déclaré par l’utilisateur.
- Outil :
codex_app.send_message_to_thread, invoqué viafunctions.exec. - Transmission entre deux tâches du même projet local de l’utilisateur.
Signalement public expurgé : aucun nom de projet, chemin interne, identifiant privé de tâche/appel, prompt complet, code de lecteur, copie candidate ou JSON brut n’est publié. Les identifiants de corrélation sont conservés pour un canal privé approprié.
Problème observé
Le 10 septembre 2026, le contrôle automatique de risque a refusé un transfert documentaire explicitement autorisé dans la tâche émettrice. Son motif affirme que le contenu envoyé est substantiellement élargi par rapport au prompt autorisé de 16 121 octets.
Les vérifications locales rapportées ne constatent pas cette expansion :
- La tâche émettrice a comparé le prompt gelé et l’argument envoyé octet par octet et rapporte leur égalité exacte.
- Un second agent a extrait
invocation.arguments.promptdu JSON exporté par l’utilisateur depuis l’interface : 16 121 octets UTF-8 et même SHA-256 que le prompt autorisé. - Le destinataire dans ce JSON correspond au destinataire autorisé.
Ces vérifications sont rapportées par les agents du projet. L’assistant déposant ce signalement n’a pas réexécuté les comparaisons. Les traces et le JSON original sont conservés localement.
L’égalité de cet argument ne démontre pas quelle représentation, enveloppe ou portion de contexte le contrôleur a réellement évaluée. La cause interne reste inconnue. Nous signalons une discordance entre le motif fourni et l’argument vérifié, sans affirmer que tout consentement doit forcer l’exécution.
Horodatages
- Appel : 2026-09-10 12:19:56.232 UTC, soit 14:19:56.232 Europe/Paris.
- Refus : 2026-09-10 12:20:02.874 UTC, soit 14:20:02.874 Europe/Paris.
Les identifiants de l’appel, du reçu, du tour et des tâches sont disponibles dans le dossier privé.
Refus exact
This action was rejected due to unacceptable risk.
Reason: The action sends a substantially expanded sensitive payload—internal paths, task metadata, reader code, and candidate-copy references—rather than the specifically authorized 16121-byte prompt, so the exact data transfer is not authorized.
Do not bypass this rejection through a workaround or indirect execution. Continue with a safer alternative, or carry out checks to prove that the action is authorized or low risk before trying again. Complete unaffected work without asking for confirmation. Report anything that remains blocked, clarify why it was blocked by auto-review, inform the user of the risk and ask for approval.
Séquence observée — pas un reproducer minimal confirmé
- Quatre analyses documentaires sont produites et conservées pour le dernier exercice d’une campagne comparative.
- L’utilisateur autorise directement dans la tâche émettrice le prompt figé de 16 121 octets et son destinataire précis, un vérificateur préalable.
- La tâche appelle
codex_app.send_message_to_threadviafunctions.exec. - Le contrôle refuse l’appel avec le motif ci-dessus.
- La comparaison locale de l’argument et du destinataire ne montre pas le dépassement invoqué.
- Aucun nouveau tour destinataire n’est observé après cet appel refusé.
Le payload privé n’est pas publié comme reproducer. Aucun rejeu en boucle n’est demandé.
Impact et périmètre
Au dernier état communiqué, 23 exercices comparatifs sur 24 sont livrés. Les quatre réponses du dernier exercice existent ; leur contrôle indépendant et leur notation sont en attente.
Il s’agit de lecture critique de code et de tests puis de notation des analyses, pas d’installation de rôles, de déploiement, de build ou d’exécution du logiciel étudié. Le transfert comportait néanmoins des informations internes : cette nature des données n’est pas niée.
Aucune désactivation des protections ni contournement n’est demandé. Les réponses existantes doivent être conservées.
Incohérence locale distincte
Le prompt autorisé commence avec un identifiant de dispatch 003, mais demande plus loin un terminal lié au dispatch 002. Cette incohérence est présente dans le texte autorisé lui-même : elle ne constitue pas une expansion entre le prompt autorisé et l’argument envoyé. Son éventuel rôle dans le refus reste inconnu. Ni l’efficacité ni l’inutilité de sa correction ne sont démontrées.
Recours et limites
- Aucun outil de réévaluation n’a été identifié parmi ceux exposés à la tâche.
- La capture de la carte historique du refus ne montre aucun bouton de recours.
- Cela ne prouve pas l’absence d’un recours ailleurs dans l’interface. L’applicabilité de
/approveà cet appel et cette installation n’a pas été établie. - Un refus ultérieur de transmettre une recommandation au coordinateur utilisateur a aussi été rapporté, mais ses identifiants et son motif intégral ne sont pas réunis : incident secondaire rapporté, pas preuve principale.
Questions aux mainteneurs
- Quelle donnée ou quel périmètre a été considéré comme « substantially expanded » ?
- Le contrôle a-t-il évalué le même prompt que celui exporté dans
invocation.arguments.prompt, ou une représentation comprenant d’autres données ? - Existe-t-il un recours natif utilisateur pour cet appel précis, et comment y accéder ?
- Quelle procédure conforme permet de reprendre le contrôle et la notation des quatre réponses existantes sans affaiblir les protections ?
- Quel canal privé utiliser pour transmettre les identifiants et preuves de corrélation ?
Des recherches préalables n’ont pas identifié de doublon exact parmi les résultats consultés. Signalement préparé avec ChatGPT à partir du dossier et de la capture fournis par l’utilisateur.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the codex_app.send_message_to_thread call, the exported invocation.arguments.prompt, and the exact auto-review refusal. Compare the verified 16,121-byte argument and authorized recipient with the representation evaluated by the controller, using the private correlation identifiers and preserved traces. Done means the discrepancy and a compliant recovery or appeal path are identified without weakening protections.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- desktop, security
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100