[secdir] Re: draft-ietf-rtgwg-qos-model-15 ietf last call Secdir review
Prachi Jain <prachi.jain1288@gmail.com> Mon, 10 August 2026 14:22 UTC
Return-Path: <prachi.jain1288@gmail.com>
X-Original-To: secdir@mail2.ietf.org
Delivered-To: secdir@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id BBB7D1272ED59 for <secdir@mail2.ietf.org>; Mon, 10 Aug 2026 07:22:54 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1786371774; bh=nXl8Qn36fI4FllnDpkfr9dGLIyKEHoiaXrt1SFAJELs=; h=References:In-Reply-To:From:Date:Subject:To:Cc; b=MgRlomVsOdOW+8ygski2JvnDcR1uhDUUZrr9BR65/v0JDopaNhH1Hbgd20XLn+COI Hyb2Ya6tfjoS08hIfDSpYg6w3iIyEa/oyDuD0/pC2VTqilJX9ne/ShBnFRoUHxqK9Z iwfAKDnYVBXj7d4ELXol+htxoa5g/D4G7QvHL1os=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.848
X-Spam-Level:
X-Spam-Status: No, score=-1.848 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id CQ5jOGiUHzn6 for <secdir@mail2.ietf.org>; Mon, 10 Aug 2026 07:22:53 -0700 (PDT)
Received: from mail-qv1-xf34.google.com (mail-qv1-xf34.google.com [IPv6:2607:f8b0:4864:20::f34]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id ABDBB1272ED40 for <secdir@ietf.org>; Mon, 10 Aug 2026 07:22:53 -0700 (PDT)
Received: by mail-qv1-xf34.google.com with SMTP id 6a1803df08f44-8f23e851626so11508686d6.3 for <secdir@ietf.org>; Mon, 10 Aug 2026 07:22:53 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; t=1786371773; cv=none; d=google.com; s=arc-20260327; b=bpeEwYDI0dQIzEXhRHLfyZBLh2djUpino00vyU0ME0YpRjh7ls7f7f5yWgsE5dbPYX dYztSTvnCGFHZWJkPoOSTKFald1OpJraWt/WL9HmiE9srGe0QTMk2ORlTLO9HheKNvMT Zxras3cFyctNQDE+m3RMwA0XfDKIbmMoc1RW18M4VQ0e+LVa8caIuqQ/15cj633lbm5H KXtu55r2cibEX4GoGt6wr5h5hgEzRNSLdbnLsGX+OXklvUgcAgPPDP660byw+19szfLc yxqV3J0U/LVYIxa2By6tE+zrarY3NpIWLeZTtwcH+FfxILOLTtS2uV92VK+/6tnMJfhq BOUw==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20260327; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=YpFOXGMFAiLPE+FkMbWAbd4rFUDiuOnkbPi5MUgxt5E=; fh=H0t75aC9a0EuWaC+0AiSM49S6QcUCKSLmC4RlRwtOeo=; b=QHrHlTnuV8QQsJg+WrI0f6ZrI8qFItO8G8aaoRhb1f6rs0YWFjKDHG/r0VaDYdMEXC qCLPJpJ3cBAddWJBdmtacb3Xf+Jf+G4ObPBSbUM6azYvL37sREYA5RaFacIsIkfhoxVz 58IOiZGtXF9y4NfSN1kYQG9cQULDKCz+SARJH4ZZO2zq40H9fZLzAzKWn+Ks9dTkJ+SK H/8U19O9bceK+VUVDAqmDdHNcxOIKhK4WZ2G0bMlbdIsExqVo7IUqWRL8D881YIXwwLV accBIB9O84h/0yoQQRVCj8cS1OkyWCrTHNK/6v1QiERafcVl29NTO6oAlKYrTHRKojJS Wepw==; darn=ietf.org
ARC-Authentication-Results: i=1; mx.google.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786371773; x=1786976573; darn=ietf.org; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:from:to:cc:subject:date:message-id:reply-to :content-type; bh=YpFOXGMFAiLPE+FkMbWAbd4rFUDiuOnkbPi5MUgxt5E=; b=dLEXETY9lQp7KR7Q4CsAf9SjT2T7NQ8421ViuWkOx64dQIEZObylzjvvPLLA/ggHUP 6Uvlg3QDQaCa0KDTRCap+3VQ4yhGEbzIgXnMWQradnRJycEjm8rsMCycpinRFLd6LltI r7FxXSIhpCiFW03VY0v5xt4RfHZdpWlgY54c4N1aBvYvLwaQxUC9Hpotp7WW1SmR0Nej Iujl6wUSt+QyL68QdD1NlWz/k+afZpapofikuyfPw3L/YndsWWBITN/m7mFy33oNZ0r9 BKzph/Nu92rk7QLeXn3qgPyAhzT8UPYdzA9BaOx1YDRsGECgv6/84nsfgTvRgxRnjOxL UjBg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786371773; x=1786976573; h=content-type:cc:to:subject:message-id:date:from:in-reply-to :references:mime-version:x-gm-gg:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to:content-type; bh=YpFOXGMFAiLPE+FkMbWAbd4rFUDiuOnkbPi5MUgxt5E=; b=DKtD8xowu5mdA3o4xpsGzvzwkWutLg14kU3pVW2a7WzfOD33+dQ/m+fNqvbMcnLPiH fm5uOirPpvvBSu32spA2iRfQBRmzFaPWtjxwo2P4Hva06pvFp+kBSqEKI3OcvBNFFB37 qVsZFg1quNM9dh4e1pm18tyP9kusGWNlUFkChwBmPAIqOmFIgoEmE5piBzmGeROiGIMb uV9Qz0PbPyfJN1IsHRJd76Nk3zGvad39xbto+T6tRYPQqI8lDd1/jCXM0vFw2k1CHKao X7VvyaX1Vjjfht7nAKJCJkU28JSGERh3Ojehh9JXBxajjae4UQmuPsVKNz5FY/kbo9fk 27sA==
X-Gm-Message-State: AOJu0Yz9tJpbVlnkKRmP1C/4/Vq1d1rp/sTrqVF7QAa+KaxTLhMf1PiW bj4xJerwicCYq+cglpfn6609rpon34gDbr/gA36qDL7yeJa3rNMVClEvXsZM2i0HFKPspqH8NyS SfW1inerQz/eegwPZI2ZH4KTuM2RMQMAO7g==
X-Gm-Gg: AR+sD13ZGRPXw5pwOIxHQ+KrVPr6FjKhdGXGhA2iOTD/MG9B+CNaBAHiugAuIefY0tC 8/+E1XbHMqI0XOfjdDr+QLzo8W26OpS9k6KCJS+eOXxmRfyJboagjTUVRAdTpVTOS4EPUzPBLmC ftjpbZ8ul8eo9L4hmLG4obhqNCaMG95d8Ov3J0t/xRRYmH6F4lDPW866Dk0lTc41eZTe/4wI5Wi klu1hkOAhfZxpfJZWEfaZqzJI++sNxwFXbYk8jUzT6tXVZKWKmBW35FoeQp/rlz24GeVW4lfxtM qN3iXluL/WH8/sQTOeQOPXeZNl+AwblKyrMle4bjYGedTlgoKeLmWhmgBCcvE9eWVusWWZPGzx2 gWBGNmQGaeMnKYaBi9nEuKQ/N92hFIQw/ADlx01nLZgB+CVdzX/1ro65WvuzNwfB+DiO0Mg==
X-Received: by 2002:a05:6214:3109:b0:8ee:7c26:8bb8 with SMTP id 6a1803df08f44-90881199c13mr516022096d6.9.1786371772875; Mon, 10 Aug 2026 07:22:52 -0700 (PDT)
MIME-Version: 1.0
References: <178571286344.1803828.2635234331310539309@dt-datatracker-d4d6ff9d9-fsx7d> <IA1PR11MB6468628D2B39C1D8EB6E3A95C2D02@IA1PR11MB6468.namprd11.prod.outlook.com>
In-Reply-To: <IA1PR11MB6468628D2B39C1D8EB6E3A95C2D02@IA1PR11MB6468.namprd11.prod.outlook.com>
From: Prachi Jain <prachi.jain1288@gmail.com>
Date: Mon, 10 Aug 2026 09:22:41 -0500
X-Gm-Features: AUfX_mxi4qzWa_wgteppRciClAjattL0WEvsb_LlMmwpHc304BWaczG1q1isB8Q
Message-ID: <CAA1-vB19BwHmWyDJODGp40j8JN91Zk9MBQkg4kwpBR1wJLC=-A@mail.gmail.com>
To: "Aseem Choudhary (asechoud)" <asechoud@cisco.com>
Content-Type: multipart/alternative; boundary="000000000000f585dc0658b216ea"
Message-ID-Hash: 6ZTLUFZYE3SXZ4E74OY2OFLDD2LD5GRN
X-Message-ID-Hash: 6ZTLUFZYE3SXZ4E74OY2OFLDD2LD5GRN
X-MailFrom: prachi.jain1288@gmail.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-secdir.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: "secdir@ietf.org" <secdir@ietf.org>, "draft-ietf-rtgwg-qos-model.all@ietf.org" <draft-ietf-rtgwg-qos-model.all@ietf.org>, "last-call@ietf.org" <last-call@ietf.org>, "rtgwg@ietf.org" <rtgwg@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [secdir] Re: draft-ietf-rtgwg-qos-model-15 ietf last call Secdir review
List-Id: Security Area Directorate <secdir.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/secdir/ZANDOXhD91Qtt9Mk4UFiEYd7mSU>
List-Archive: <https://mailarchive.ietf.org/arch/browse/secdir>
List-Help: <mailto:secdir-request@ietf.org?subject=help>
List-Owner: <mailto:secdir-owner@ietf.org>
List-Post: <mailto:secdir@ietf.org>
List-Subscribe: <mailto:secdir-join@ietf.org>
List-Unsubscribe: <mailto:secdir-leave@ietf.org>
Thank you. That looks good. On Mon, Aug 10, 2026 at 2:33 AM Aseem Choudhary (asechoud) < asechoud@cisco.com> wrote: > Hi Prachi, > > Thanks for the detailed review comments. Please see my response inline > starting with [AC] > We plan to address all Must-fix items and smaller points 7–11 in draft -16 > . > > Regards, > Aseem > > *From: *Prachi Jain via Datatracker <noreply@ietf.org> > *Date: *Sunday, August 2, 2026 at 4:21 PM > *To: *secdir@ietf.org <secdir@ietf.org> > *Cc: *draft-ietf-rtgwg-qos-model.all@ietf.org < > draft-ietf-rtgwg-qos-model.all@ietf.org>; last-call@ietf.org < > last-call@ietf.org>; rtgwg@ietf.org <rtgwg@ietf.org> > *Subject: *draft-ietf-rtgwg-qos-model-15 ietf last call Secdir review > > Document: draft-ietf-rtgwg-qos-model > Title: YANG Models for Quality of Service (QoS) in IP networks > Reviewer: Prachi Jain > Review result: Not Ready > > Hello, > > I've finished my review. I'm not a routing person, so I've looked at this > purely from the security side, apologies in advance if I've misread > anything > domain-specific. > > Few things I think need fixing, then a handful of smaller notes. > > Must fix > > 1. Section 6 names nodes that don't exist. > > - Three of them. voilate-pkts and voilate-bytes are just typos - the > modules spell them violate-pkts and violate-bytes. > [AC]: Section 6 will be corrected to violate-pkts and violate-bytes, > matching ietf-qos-oper. > > - red-drop-bytes > doesn't appear anywhere in the document at all; I'm assuming it means > red-statistics/drop-bytes, though it could equally be > red-statistics/wred-stats/drop-bytes. Could the authors confirm > which? > [AC]: I will change red-drop-bytes => red-statistics, since it describes > both > drop or marked for ECN > > > - The third one isn't a typo. Section 6 refers to "the clear RPC > > operation", but clear is a YANG action, and there's no rpc statement > anywhere in the seven modules. This matters for more than tidiness: > under > RFC 8341 an action is access-controlled through the data node it > hangs > off, while an RPC is controlled by an rpc-name rule. Someone > following > Section 6 would write the wrong kind of NACM rule. > [AC]: Agree, ‘clear’ is a YANG action. I will replace ‘clear RPC > operation’ with ‘clear action’ > > - While I'm here, the > node names are given without paths. drop-pkts and drop-bytes each > turn up > in four different places in ietf-qos-oper, so there's no way to tell > which is meant. > [AC]: I would add the context to avoid any ambiguity. > > 2. RFC 8341 (NACM) should be a normative reference. > - It's currently in Section 9.2 with the informative ones. The > template > is explicit that it has to be normative, and given NACM is the only > access control mechanism Section 6 leans on, that seems right. - > Worth > adding RFC 9907 too - it's the current YANG guidelines RFC and it > isn't > cited anywhere. > [AC]: Agree, I will move to Section 9.1 (Normative References), and > Section 6 > will state that access control for configuration, operational data, and > actions is > expected to be enforced using NACM per RFC 8341. > > [RFC9907] will be added as a normative reference and cited in Section 6 > > as the basis for restructuring the security considerations text. > > 3. The writable-node list leaves out the disruptive ones. > - The template requires writable nodes that could be especially > disruptive to be listed by name. Section 6 lists three fairly generic > ones - filter-operation, filter and action - and skips the ones I'd > actually worry about: - qos-target-policy is what binds a policy to > an > interface, so removing an entry removes the traffic treatment from > that > interface and direction. That's the biggest one and it isn't there at > all. - discard, which is an action-type identity that does what it > says. > - dscp-mark and dscp-marking - RFC 2475 Section 6 already describes > DSCP > remarking as a theft-of-service vector. - The meter rates > (committed-information-rate, peak-information-rate, and the three > burst > sizes), which decide what traffic gets treated as conforming versus > violating. > [AC]:I will expand the writable-node analysis beyond the generic > classifier/action entries, > and add 'qos-target-policy', ‘discard’, ‘dscp-mark’, ‘meter-rates' as high > impact writable. > > > 4. The readable-node list is incomplete too. > - Section 6 covers the metering counters and the drop/ECN ones, but > not > classified-pkts, classified-bytes or classified-rate. Those strike > me as > more sensitive than the ones that are listed, because they give away > policy structure rather than volume - someone who can read them and > also > inject traffic can work out which prefixes, ports and DSCP values the > operator matches on, without ever seeing the config. > > [AC]: We will add 'classified-pkts', 'classified-bytes', and ' > classified-rate' under the > > classifier statistics paths, and note that they can reveal which > classifiers/policies are > > matching traffic and thus infer policy structure when combined with > injected probe traffic. > > - Also missing: the > queue occupancy leaves (queue-current-size-bytes and friends), which > are > a live readout of link congestion, and policy-name, which is an > unconstrained string, so the model can't really assume it's free of > customer-identifying information. > > [AC]: We will add: > > - queue-current-size-bytes > - queue-average-size-bytes > - queue-peak-size-bytes > > under .../stats-per-direction/queueing/, noting they expose live > congestion state > > As well as, we will add 'policy-name' under stats-per-direction and note > that unconstrained > > string values may contain operator- or customer-identifying information > and should be > > read-protected accordingly. > > 5. Section 6 needs rebuilding from the current template. > - Using the current template is mandatory under RFC 9907 Section > 3.7, and > this one predates the 2025 rewrite. > > [AC]. Section 6 will be regenerated from the current RFC 9907 YANG > security > > considerations template rather than incrementally patched. > > - Four gaps noticed: > - The mutual authentication requirement is missing - the template > asks for secure transport and mutual authentication, and Section > 6 > only has the first. - ietf-qos-types needs its own paragraph, > since > it defines only identities, typedefs and features and the > template > has specific text for that case. - The reused-groupings > paragraph is > absent, which matters because ietf-traffic-policy and > ietf-qos-oper > both augment /if:interfaces/if:interface, so RFC 8343's security > considerations should be pointed at. - Section 6 says "The YANG > module specified in this document" when Section 5 registers > seven. > - Easiest fix is probably to regenerate the whole section from the > template on the IETF wiki and then re-add the module-specific parts. > > [AC]: We will add explicit text that management access SHOULD use > > secure transport with mutual authentication (e.g., TLS client > > authentication or SSH key-based client authentication) before > > configuration or operational data is exposed. > > We will add a dedicated ietf-qos-types paragraph using > > the template language for types-only modules (no config/state > > data nodes; identities/features affect which nodes appear in > > other modules). > > Opening text will read “The YANG modules specified in this document…” > > and Section 6 will include per-module subsections or paragraphs > > for all seven modules. > > 6. Nothing stops a policy referencing itself. > - This is the one thing in the YANG itself I'd hold the document for. > > [AC]: Agree. We agree this is a modeling defect and will fix it in -16. > > - The child-policy grouping has a single leaf name of type string - > not a > leafref, and with no must or when on it. So it can name a policy that > doesn't exist, and the document doesn't say what a server should do > about > that > > [AC]: Agree. We will: > > 1. Change child-policy/name from string to leafref pointing to > /traffic-policy:policies/policy/name > 2. Add prose that a reference to a non-existent policy MUST be > rejected at validation/commit time (consistent with other leafref > usage in the model) > > - More concerning, it can form a cycle: A's child names B, B's > child names A. That satisfies every constraint in the document, and > since > nothing prohibits it or says how to handle it, an implementation > resolving the chain without a depth limit wouldn't terminate. > > [AC]: Agree. We will add normative text that implementations MUST reject: > > - direct self-reference (child names containing policy), and > - cyclic child-policy chains > > - I suspect this is just an oversight, since the same document uses > leafref for > meter-reference and queue-policy-name. Suggest making it a leafref, > adding a constraint against self-reference, and saying explicitly > that > servers must reject cyclic hierarchies. > [AC]: Agree exactly as suggested. leafref + anti-self-reference + > anti-cycle rejection > will be added; behavior will be documented in the module description > and/or > Section 3/4 prose and reflected in Security Considerations. > > Smaller points > 7. The clear action has no NACM protection. RFC 8341's exec-default is > permit, > and nothing here overrides it - ietf-netconf-acm isn't imported by any of > the > seven modules. So with NACM on but no rule written for this action, any > authenticated user can invoke it, including one with no write access. > Adding > nacm:default-deny-all is a recommendation rather than a hard requirement, > but > describing the sensitivity isn't. > [AC]: Agree, we will modify: > > - Section 6 will describe clear as sensitive (resets operational > counters; > can hide evidence of misbehavior or disrupt monitoring). > - Section 6 will note that with default NACM exec-default = permit, > operators > MUST configure explicit invoke rules unless they intend all > authenticated > users to clear counters. > - In ietf-qos-oper, we will 'import ietf-netconf-acm' and add > 'nacm:default-deny-all' on the clear action (recommended > hardening per RFC 8341). > > > 8. Rate values aren't constrained against their unit. value is an > unbounded > uint64 and unit can be percent, with nothing tying them together, so value: > 4000, unit: percent validates fine. Same story for burst-value, and neither > leaf is mandatory. A must capping it at 0-100 when the unit is percent > would > cover it. > > [AC]: Agree. In rate-value-unit we will add: > > must "not(../unit = 'qos-types:percent') or (. <= 100)”; > > We will review burst-value / burst-unit for the same pattern where > percentage > > units apply, and clarify in descriptions when leaves are required for a > valid > > configuration. > 9. The scheduled clear is underspecified. started-at takes a future > timestamp, > but there's no bound on how far ahead, no way to list or cancel something > pending, no notification when it fires, and no stated behaviour for a > timestamp > in the past. > > [AC]: Agree. We will add implementation guidance in the clear action > description and Section 4.4: > > Section 6 will note that scheduled clear can affect monitoring/forensics > timing and > > should be invoke-restricted like immediate clear. > 10. RFC 2475 Section 6 isn't referenced. Its security section already > covers > theft of service via DSCP remarking, denial of service through marking, > and the > domain trust boundary - all of which this document configures. Right now > Section 6's only line on the subject is that the action "decides what > action > will be taken on the packet." > [AC]: Agree. We will: > > - Add [RFC2475] to references (informative, if not already cited > elsewhere) > - Expand Section 6 to reference RFC 2475 Section 6 for > theft-of-service via > remarking, DoS via marking, and DiffServ domain trust-boundary > considerations > - Replace the generic “action decides what will be taken on the > packet” text with > specific treatment of marking, metering, discard, and policy binding > risks > > > 11. Configuration is readable as well as writable. The ietf-diffserv > filters > hold source and destination prefixes, port ranges, protocol numbers and > DSCP > values. The template is explicit that the readable-nodes analysis covers > config > nodes too, since they can be read via get-config, but Section 6 only looks > at > counters. > > [AC]: Agree. Section 6 readable-node analysis will explicitly include > configuration > > data readable via <get-config> / RESTCONF, including at minimum: > > - /classifiers/classifier/filter/* (all diffserv filter parameters) > - /policies/policy/classifier/inline/filter/* > - /policies/policy/classifier/action/* > - /interfaces/interface/qos-target-policy > - /meters/meter/*, /queues/queue/* > > > > Happy to discuss further. > Thanks, > > >
- [secdir] draft-ietf-rtgwg-qos-model-15 ietf last … Prachi Jain via Datatracker
- [secdir] Re: draft-ietf-rtgwg-qos-model-15 ietf l… Aseem Choudhary (asechoud)
- [secdir] Re: draft-ietf-rtgwg-qos-model-15 ietf l… Prachi Jain