[bug] VPN-Client template allows VPN server change after device attachment, causing CA/certificate mismatch
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
- #1400 @SurbhiAgarwal1 による — マージされずにクローズ
評価
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 初心者へのやさしさ
- 48/100
- issue の種類
- バグ
- 明瞭さ
- おおむね明確
- 活発さ
- 静か
- 領域
- networking, security
調査の方向性
再現手順で説明されている VPN-client テンプレートの更新フローから始め、vpn フィールドの変更が、関連付けられたデバイス、VpnClient レコード、レンダリングされた構成、証明書にどのような影響を与えるかを追跡します。検証パスと管理パスを比較し、割り当て済みのテンプレートを保存したときに、ユーザーが理解できるブロックが表示されるか、目立つ再プロビジョニング警告が表示され、CA の不一致を残さないことを確認します。
索引モデルが issue の本文から書いたものです。
説明
Describe the bug
A VPN-type template that is already attached to a device can have its VPN server field changed without any validation or warning. When the template is pointed at a different VPN server, the existing device continues to hold a certificate that was signed by the original VPN server's CA. The new VPN server uses a different CA and will reject the device's certificate during the TLS handshake, silently dropping the device off the VPN with no error shown in the admin UI.
Steps To Reproduce
- Create a CA and a VPN server (Server A) using that CA.
- Create a VPN-client template pointing to Server A.
- Create a device and attach the template to it, a VpnClient record and certificate signed by Server A's CA are created.
- Create a second VPN server (Server B) using a different CA.
- Open the template and change the VPN field from Server A to Server B.
- Save the template.
- Observe that the device's rendered configuration now references Server B, but the enrolled certificate is still signed by Server A's CA, which Server B does not trust.
Expected behavior
Changing the vpn field on a template that is already assigned to one or more devices should either be blocked with a user-readable validation error, or the admin should display a prominent warning that all enrolled devices will have a CA/certificate mismatch and must be re-provisioned.
Screenshots
N/A
System Informatioon:
- OS: Fedora 42
- Python Version: Python 3.13
- Django Version: Django 5.2.14
- Browser and Browser Version (if applicable): Firefox
- 主要言語
- Python
- スター
- 779
- フォーク
- 328
- 平均マージ
- 2日 19時間
- マージ済み PR(30日)
- 7
環境構築
- Dockerfile または Docker Compose ファイルあり
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
openwisp/openwisp-controller のほかの issue
-
[fix] Recent Commands row uses "created" timestamp for the "Modified" field対応中かも @xovishnukosuri が 216 日前に担当しました。 オープンbug
難易度 1/5 1時間未満 初心者へのやさしさ 78/100
openwisp/openwisp-controller#1263 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
[feature] Emit a signal when a device operating system changes対応中かも @kimpasha23-beep が 4 日前に担当しました。 オープンenhancement
難易度 3/5 半日 初心者へのやさしさ 65/100
openwisp/openwisp-controller#1506 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
[feature] Add board_name field to Device model for DTB board identification再び着手できるかも @atif09 が 28 日前に担当しましたが、オープン中のプルリクエストはありません。 オープンenhancement gsoc
openwisp/openwisp-controller#1491 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
[bug:gsoc26] Mass command wizards started in two browser tabs overwrite each other対応中かも @dee077 が 30 日前に担当しました。 オープンbug
openwisp/openwisp-controller#1489 · コメント 2 件 · 担当者 1 名 ·
メンテナーはふだん 1 日以内に返信
-
enhancement
難易度 5/5 1週間以上 初心者へのやさしさ 30/100
openwisp/openwisp-controller#1484 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
openwisp/openwisp-controller の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
huggingface/sentence-transformers#4186 ·
メンテナーはふだん 5 日以内に返信
-
documentation good first issue
難易度 2/5 半日 初心者へのやさしさ 72/100
sujithputta02/Esapay#13 ·
-
bot-triaged module: correctness (silent) module: mps module: NaNs and Infs triage review
難易度 2/5 半日 初心者へのやさしさ 62/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
SCIInstitute/SCIRun#2842 ·
メンテナーはふだん 3 日以内に返信