<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.31 (Ruby 3.4.4) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-mahy-mls-ext-commit-pp-01" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.31.0 -->
  <front>
    <title abbrev="MLS Pending Proposals in External Commits">Including Pending Proposals in External Commits in the Messaging Layer Security protocol</title>
    <seriesInfo name="Internet-Draft" value="draft-mahy-mls-ext-commit-pp-01"/>
    <author initials="R." surname="Mahy" fullname="Rohan Mahy">
      <organization/>
      <address>
        <email>rohan.ietf@gmail.com</email>
      </address>
    </author>
    <date year="2026" month="March" day="02"/>
    <area>Security</area>
    <workgroup>Messaging Layer Security</workgroup>
    <keyword>external commits</keyword>
    <keyword>pending proposals</keyword>
    <abstract>
      <?line 36?>

<t>The Messaging Layer Security (MLS) protocol allows authorized non-members to join a group via external commits, however it disallows most pending proposals in those commits, which causes unfortunate side effects. This document describes an MLS extension to include pending proposal in external commits when the extension is present in a group.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://rohanmahy.github.io/mls-ext-commit-pp/draft-mahy-mls-ext-commit-pp.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-mahy-mls-ext-commit-pp/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Messaging Layer Security Working Group mailing list (<eref target="mailto:mls@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/mls/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/mls/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/rohanmahy/mls-ext-commit-pp"/>.</t>
    </note>
  </front>
  <middle>
    <?line 41?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>MLS <xref target="RFC9420"/> allows external commits by authorized clients. The external committer needs a copy of the GroupInfo, either from an existing member or (when supported) from the MLS Distribution Service (DS). The reasoning was that the external committer can't access pending proposals, and that the external committer could not verify them in any case.</t>
      <t>The problem is that two important use cases are negatively impacted when external committers join: leaving a group, and external policy enforcement.</t>
      <t>This document describes an MLS extension, that when in the <tt>required_capabilities</tt> in the GroupContext, requires an external joiner to include any pending proposals by reference in its external commit.
It assumes that the external joiner can get a suitable set of external proposals from whichever party supplies the GroupInfo.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>This document relies on many terms and struct names from <xref target="RFC9420"/>.</t>
    </section>
    <section anchor="problem-use-cases">
      <name>Problem Use Cases</name>
      <section anchor="leaving-a-group">
        <name>Leaving a group</name>
        <t>MLS clients cannot leave a group without the assistance of another member of the group. A Remove proposal, or SelfRemove proposal (see <xref section="6.4" sectionFormat="of" target="I-D.ietf-mls-extensions"/>) needs to be committed before it takes effect, but a client cannot commit its own remove, because a committer knows the epoch secret for the newly created epoch.</t>
        <t>Instead, a leaver sends a Remove or SelfRemove proposal and then stays in the group it is trying to leave until it receives a commit showing it has been removed.
The client will not be able to determine the epoch secret of the new group, but it will be able validate the tags of the commit.
If an external commit is accepted by the DS before a Remove proposal is committed, the leaver needs to enter the new epoch and try to leave again.
In practice, this can happen multiple times before the leaver's proposal is finally committed.</t>
        <t>The SelfRemove proposal addresses this problem partially, in that SelfRemove proposals can be included by reference in an external commit, however this does not solve the problem when there are related proposals that should be processed atomically.</t>
        <t>When the leaver wants all the clients of the same "user" identity to leave simultaneously, it has a dilema. It can commit Remove proposals for all the user's other clients, then send a SelfRemove proposal immediately in the new epoch. Alternatively, it can send a bundle a proposals for itself and the user's other clients, but risk that only the SelfRemove proposal is committed (at which point the leaver cannot effect any other changes to the group), or that several epochs pass before all the leaving clients are removed.</t>
        <t>This problem is exacerbated in the More Instant Message Interoperability (MIMI) protocol (<xref target="I-D.ietf-mimi-protocol"/>) since the removal of another client may not be authorized by itself, but would be otherwise acceptable when a user is removing itself completely.</t>
      </section>
      <section anchor="external-policy-enforcer">
        <name>External policy enforcer</name>
        <t>In many architectures, an external policy enforcer can send external proposals to an MLS group.
This could be relatively simple, as in an organization removing a compromised client, or a company removing the clients associated with an employee when she leaves the company.</t>
        <t>In more complicated scenarios, such as in MIMI room policy <xref target="I-D.ietf-mimi-room-policy"/>, the policy enforcer might change the role of a participant to ban them, to prevent them from sending messages, or to remove their moderator privileges.</t>
        <t>If an external commit occurs after the pending external proposals, the commit would usually exclude the pending proposals.
The policy enforcer would have to resend the external proposals in the new epoch.</t>
        <t>A malicious client could try to send an external commit to rejoin the group immediately upon seeing a proposal to lower its privileges.
The DS could refuse the external commit, but the participant would still have legitimate use cases where it may need to rejoin via an external commit.</t>
        <t>A pair of malicious clients, A and B, could collude so if B sees an external proposal removing, banning, or reducing privileges of A, B sends an external commit.
B could potentially delay the policy action against A by several epochs using this approach.</t>
      </section>
    </section>
    <section anchor="mechanism">
      <name>Mechanism</name>
      <t>This document defines the <tt>external_pending_proposals</tt> extension type. When present in the capabilities of a LeafNode it indicates the client's support of the extension. When present in the <tt>required_capabilities</tt> in the GroupContext, it indicates that all clients <bcp14>MUST</bcp14> include all the pending proposals provided to it by the provider of the GroupInfo.</t>
      <t>The <tt>external_pending_proposals</tt> extension type has no contents:</t>
      <sourcecode type="tls"><![CDATA[
struct {
} ExternalPendingProposalsContents;
]]></sourcecode>
      <t>The provider of the GroupInfo is expected to provide all the pending proposals it has received at the point it provides the GroupInfo.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <section anchor="authentication-of-proposals-by-potential-joiner">
        <name>Authentication of Proposals by Potential Joiner</name>
        <t>If the source of the GroupInfo provides an invalid proposal, an external commit using that GroupInfo and proposal list will be rejected by the other group members.
This is effectively a denial of service attack on the client that wants to join the group. However the source of the GroupInfo could more easily not provide the GroupInfo, or provide an invalid one.
This problem could be eliminated if the external joiner can authenticate the request.
This is already the case for most external proposals, which are typically used for policy enforcement.
<xref target="I-D.kohbrok-mls-leaf-operation-intents"/> describes a mechanism by which leavers can prove their intent to leave and, at the time, their membership in an MLS group.</t>
      </section>
      <section anchor="authentication-of-proposals-by-a-policy-enforcing-ds">
        <name>Authentication of Proposals by a policy enforcing DS</name>
        <t>A policy enforcing DS can validate most proposals and commits. A malicious or faulty client can generate an incorrect tag or an invalid UpdatePath without detection by the MLS DS, regardless of this mechanism. Most of the proposal types in <xref target="RFC9420"/> can be validates by a policy enforcing DS, however a proposal that members could determine was invalid, but a DS could not could lead to exactly the same types of problems already observed with faulty commits.</t>
      </section>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document requests the addition of a new MLS Extension Type under the heading of "Messaging Layer Security".</t>
      <t>RFC EDITOR: Please replace XXXX throughout with the RFC number assigned to this document</t>
      <t>The <tt>external_pending_proposals</tt> MLS Extension Type is used inside GroupContext and LeafNode objects.
When present it indicates support for this extension.</t>
      <ul spacing="normal">
        <li>
          <t>Value: 0x0009 (suggested)</t>
        </li>
        <li>
          <t>Name: external_pending_proposals</t>
        </li>
        <li>
          <t>Message(s): GC, LN : This extension may appear in GroupContext and LeafNode objects</t>
        </li>
        <li>
          <t>Recommended: Y</t>
        </li>
        <li>
          <t>Reference: RFC XXXX</t>
        </li>
      </ul>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC9420" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9420.xml">
          <front>
            <title>The Messaging Layer Security (MLS) Protocol</title>
            <author fullname="R. Barnes" initials="R." surname="Barnes"/>
            <author fullname="B. Beurdouche" initials="B." surname="Beurdouche"/>
            <author fullname="R. Robert" initials="R." surname="Robert"/>
            <author fullname="J. Millican" initials="J." surname="Millican"/>
            <author fullname="E. Omara" initials="E." surname="Omara"/>
            <author fullname="K. Cohn-Gordon" initials="K." surname="Cohn-Gordon"/>
            <date month="July" year="2023"/>
            <abstract>
              <t>Messaging applications are increasingly making use of end-to-end security mechanisms to ensure that messages are only accessible to the communicating endpoints, and not to any servers involved in delivering messages. Establishing keys to provide such protections is challenging for group chat settings, in which more than two clients need to agree on a key but may not be online at the same time. In this document, we specify a key establishment protocol that provides efficient asynchronous group key establishment with forward secrecy (FS) and post-compromise security (PCS) for groups in size ranging from two to thousands.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="9420"/>
          <seriesInfo name="DOI" value="10.17487/RFC9420"/>
        </reference>
        <reference anchor="RFC2119" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174" xml:base="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
        <reference anchor="I-D.ietf-mls-extensions">
          <front>
            <title>The Messaging Layer Security (MLS) Extensions</title>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="21" month="July" year="2025"/>
            <abstract>
              <t>   The Messaging Layer Security (MLS) protocol is an asynchronous group
   authenticated key exchange protocol.  MLS provides a number of
   capabilities to applications, as well as several extension points
   internal to the protocol.  This document provides a consolidated
   application API, guidance for how the protocol's extension points
   should be used, and a few concrete examples of both core protocol
   extensions and uses of the application API.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mls-extensions-08"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="I-D.ietf-mimi-protocol">
          <front>
            <title>More Instant Messaging Interoperability (MIMI) using HTTPS and MLS</title>
            <author fullname="Richard Barnes" initials="R." surname="Barnes">
              <organization>Cisco</organization>
            </author>
            <author fullname="Matthew Hodgson" initials="M." surname="Hodgson">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <author fullname="Travis Ralston" initials="T." surname="Ralston">
              <organization>The Matrix.org Foundation C.I.C.</organization>
            </author>
            <author fullname="Raphael Robert" initials="R." surname="Robert">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   This document specifies the More Instant Messaging Interoperability
   (MIMI) transport protocol, which allows users of different messaging
   providers to interoperate in group chats (rooms), including to send
   and receive messages, share room policy, and add participants to and
   remove participants from rooms.  MIMI describes messages between
   providers, leaving most aspects of the provider-internal client-
   server communication up to the provider.  MIMI integrates the
   Messaging Layer Security (MLS) protocol to provide end-to-end
   security assurances, including authentication of protocol
   participants, confidentiality of messages exchanged within a room,
   and agreement on the state of the room.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-protocol-05"/>
        </reference>
        <reference anchor="I-D.ietf-mimi-room-policy">
          <front>
            <title>Room Policy for the More Instant Messaging Interoperability (MIMI) Protocol</title>
            <author fullname="Rohan Mahy" initials="R." surname="Mahy">
              <organization>Rohan Mahy Consulting Services</organization>
            </author>
            <date day="18" month="December" year="2025"/>
            <abstract>
              <t>   This document describes a set of concrete room policies for the More
   Instant Messaging Interoperability (MIMI) Working Group.  It
   describes several independent properties and policy attributes which
   can be combined to model a wide range of chat and multimedia
   conference types.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-mimi-room-policy-03"/>
        </reference>
        <reference anchor="I-D.kohbrok-mls-leaf-operation-intents">
          <front>
            <title>Leaf Operation Intents</title>
            <author fullname="Konrad Kohbrok" initials="K." surname="Kohbrok">
              <organization>Phoenix R&amp;D</organization>
            </author>
            <date day="20" month="October" year="2025"/>
            <abstract>
              <t>   The Messaging Layer Security (MLS) protocol defined in [RFC9420] is
   an asynchronous secure group messaging protocol, which allows group
   members to propose their removal from a group.

   However, in some cases MLS clients can't reliably use regular Remove
   or SelfRemove proposals to leave a group because they don't have an
   up-to-date group state.

   This document specifies a LeafOperationIntent, which does not need an
   up-to-date group state but which retains sufficient binding to the
   client's current state to avoid replay attacks.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-kohbrok-mls-leaf-operation-intents-01"/>
        </reference>
      </references>
    </references>
    <?line 157?>



  </back>
  <!-- ##markdown-source:
H4sIAAAAAAAAA5Va23LcxhF9x1eMqQdTrt2l5KgSe+OyQ5G0vSlSYkgqjiuV
smaB2d0xAQyMGZBaq+hvybfky3K6e3DZC2VZL1wM5tKX06e7BxqPx0mwITdT
dTAr07zJbLlUl6aUv7WrnNe5V7ZUZ++CqUudqxNXFDbwWFgZdWG810uafq7X
plbXJm1qG9aqql1wqcsPEj2f1+YOR1ycX3/c5gdJqoNZuno9xeuFS5LMpaUu
IGdW60UYF3q1Hhe5H5t3YZzyonFVjZ89T3wzL6z31pVhXWH+7OzmW6WeKJzk
IIItM1NBBFOGg5E6MJkNrrY6p4fZ8Uv8cTV+Xd18e5CUTTE39TTJIMs0SV3p
TekbP1WhbkwChf6U6Npo7NoqfZDcu/p2WbumInUfMc1BcmvWmJhNEzVWptVd
1PA0VkUjVa2RkjtTNhBCqd/fXCnR/OAHyEITvqMlNF5om2McdvubNWExcfWS
hnWdrjC8CqHy06MjmkVD9s5M2mlHNHA0r929N0dYf0TrljasmjlW1m6lS3LJ
0Y5LaF4O+/kwOKGbP5EtJtbtrjz6kKcnq1AAWYluwsrVbEcABa65mqgLrMCp
Si2aPBfQXNGB/QsopEv7qw5AyZRHjJiGBWOl/7akkQkOTJLS1QXm3sH+CaGx
f0rG47HScx9qnYYkuflQPBwC/U+7qAAecxhTiQL2V5Op0pXjwhDkvApO/ewQ
GFr8re6s3gHKSK3cvbnDGTaozPq4Y+F82AWQhKvzpl99v7LpSqW68carhvQK
TQlXKW8zo8xiYdLgJ+pmZb1C+DUFYkZlxqe1nWMFGRTxTFKVFG4ks2UOMTvH
0+nb4uN8IxTSb4GTqtp4OqhXfhLtXNgsy02SPFGzMtQua1LyX5KQFO/ff3L1
7cmXLz5/9vDQmnbnwPl6aO40tziHFTTbc/GgSmMyaImRaq3cgiXlSJrBVCNl
gFzMWtSuIFOYd9YHUlk8SCxyyAr6pqpgWZM9lbnMmZD4FPNhyIZ0AEjqO5sa
dXh6/VQEAq94V9KG9xpwWOnQmWpLzlSXnwal0xTA2/X7CMJlH17vmpzAFxSg
ZBdrmlew+cs1NvdmIsDGlvOc3rTi3MPfBemm4a6GkKUJSaBE2G7JIZKvaQpi
A/Zma+ye7xnoU5UbfUeSR6eL3N30yuU2XStDKE0NIZGl+jhkjkRgFiBmrbe1
+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
vH+astXJJfH74xzZJEn+D1N5rC4zIQAA

-->

</rfc>
