Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package himmelblau for openSUSE:Factory 
checked in at 2025-11-20 14:50:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/himmelblau (Old)
 and      /work/SRC/openSUSE:Factory/.himmelblau.new.2061 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "himmelblau"

Thu Nov 20 14:50:57 2025 rev:37 rq:1318747 version:1.4.2+git.0.52da279

Changes:
--------
--- /work/SRC/openSUSE:Factory/himmelblau/himmelblau.changes    2025-10-01 
18:56:50.946133770 +0200
+++ /work/SRC/openSUSE:Factory/.himmelblau.new.2061/himmelblau.changes  
2025-11-20 14:52:34.615941370 +0100
@@ -1,0 +2,14 @@
+Wed Nov 19 19:36:55 UTC 2025 - David Mulder <[email protected]>
+
+- Update to version 1.4.2+git.0.52da279:
+  * Version 1.4.2
+  * Rocky container image updates were failing
+  * Revert libhimmelblau unstable update
+  * Version 1.4.1
+  * Update Intune to use app version 1.2511.7
+  * Version 1.4.0
+  * Resolve build failures
+  * deps(rust): bump the all-cargo-updates group across 1 directory with 6 
updates
+  * Permit NSS response for mapped primary fake group
+
+-------------------------------------------------------------------

Old:
----
  himmelblau-1.3.0+git.0.f8cabb7.tar.bz2

New:
----
  himmelblau-1.4.2+git.0.52da279.tar.bz2

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ himmelblau.spec ++++++
--- /var/tmp/diff_new_pack.7Cf6rN/_old  2025-11-20 14:52:36.380015779 +0100
+++ /var/tmp/diff_new_pack.7Cf6rN/_new  2025-11-20 14:52:36.384015948 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package himmelblau
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2025 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           himmelblau
-Version:        1.3.0+git.0.f8cabb7
+Version:        1.4.2+git.0.52da279
 Release:        0
 Summary:        Interoperability suite for Microsoft Azure Entra Id
 License:        GPL-3.0-or-later

++++++ _servicedata ++++++
--- /var/tmp/diff_new_pack.7Cf6rN/_old  2025-11-20 14:52:36.456018985 +0100
+++ /var/tmp/diff_new_pack.7Cf6rN/_new  2025-11-20 14:52:36.460019154 +0100
@@ -3,6 +3,6 @@
                 <param 
name="url">https://github.com/openSUSE/himmelblau.git</param>
               <param 
name="changesrevision">6d2f6450ff3c0c945a884d4b35307e03a035a581</param></service><service
 name="tar_scm">
                 <param 
name="url">https://github.com/himmelblau-idm/himmelblau.git</param>
-              <param 
name="changesrevision">f8cabb7e281e6758a9bbfd2f6f19b67c5b47744c</param></service></servicedata>
+              <param 
name="changesrevision">52da279cb3d24e70ab569bfd169d5feb9fb01c10</param></service></servicedata>
 (No newline at EOF)
 

++++++ himmelblau-1.3.0+git.0.f8cabb7.tar.bz2 -> 
himmelblau-1.4.2+git.0.52da279.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/himmelblau-1.3.0+git.0.f8cabb7/.github/FUNDING.yml 
new/himmelblau-1.4.2+git.0.52da279/.github/FUNDING.yml
--- old/himmelblau-1.3.0+git.0.f8cabb7/.github/FUNDING.yml      2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.github/FUNDING.yml      1970-01-01 
01:00:00.000000000 +0100
@@ -1,15 +0,0 @@
-# These are supported funding model platforms
-
-github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, 
user2]
-patreon: # Replace with a single Patreon username
-open_collective: himmelblau
-ko_fi: # Replace with a single Ko-fi username
-tidelift: # Replace with a single Tidelift platform-name/package-name e.g., 
npm/babel
-community_bridge: # Replace with a single Community Bridge project-name e.g., 
cloud-foundry
-liberapay: # Replace with a single Liberapay username
-issuehunt: # Replace with a single IssueHunt username
-lfx_crowdfunding: # Replace with a single LFX Crowdfunding project-name e.g., 
cloud-foundry
-polar: # Replace with a single Polar username
-buy_me_a_coffee: # Replace with a single Buy Me a Coffee username
-thanks_dev: # Replace with a single thanks.dev username
-custom: 
['https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8GYKFLX9UNCH2']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/ISSUE_TEMPLATE/bug_report.md 
new/himmelblau-1.4.2+git.0.52da279/.github/ISSUE_TEMPLATE/bug_report.md
--- old/himmelblau-1.3.0+git.0.f8cabb7/.github/ISSUE_TEMPLATE/bug_report.md     
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.github/ISSUE_TEMPLATE/bug_report.md     
1970-01-01 01:00:00.000000000 +0100
@@ -1,56 +0,0 @@
----
-name: Bug report
-about: Create a report to help us improve
-title: ''
-labels: ''
-assignees: ''
-
----
-
-**Description**
-Please provide a clear and concise description of the bug, including the 
expected behavior and what actually happens.
-
-**Steps to Reproduce**
-1.
-2.
-3.
-
-**Screenshots**
-If applicable, add screenshots to help explain your problem.
-
-**Logs and Output**
-Please attach relevant logs. Make sure to include outputs from the systemd 
journal by running:
-```bash
-journalctl -u himmelblaud -u himmelblaud-tasks
-```
-
-**Configuration**
-Please attach a copy of your `/etc/himmelblau/himmelblau.conf` file.
-
-**Packet Trace (For Authentication Errors)**
-If you are encountering an authentication error (check the systemd journal for 
errors related to the `himmelblaud` daemon), please capture a packet trace of 
the OAuth2 authentication traffic to Azure Entra ID.
-
-Instructions for capturing the packet trace can be found on the [Himmelblau 
Wiki](https://github.com/himmelblau-idm/himmelblau/wiki/Capturing-authentication-traffic-using-cirrus%E2%80%90scope).
-
-Please ensure any sensitive data is redacted before submission, including 
passwords, access tokens, refresh tokens, etc. If you prefer, you can message 
the developer privately on the [Himmelblau Matrix 
Channel](https://matrix.to/#/#himmelblau:matrix.org) to provide the packet 
capture.
-
-**Environment**
-- **Linux Distro**: 
-- **Package source (distro package/github release/self built)**: 
-- **Himmelblau Version**: 
-
-**Additional Information**
-Include any additional context that might help diagnose the issue, such as 
recent configuration changes or related issues.
-
----
-
-### đź’ˇ Help Make It Happen!
-Want to see this bug fixed faster? Fund its implementation through our 
**Backer's Bounty** program, where you choose which bug fixes get priority!
-
-[![Donate to Our 
Collective](https://opencollective.com/himmelblau/donate/button.png?color=blue)](https://himmelblau-idm.org/backers.html#backers-bounty)
-
-For US tax exempt donations:
-
-[![Donate US Tax 
Exempt](https://www.spi-inc.org/images/paypal_btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8GYKFLX9UNCH2)
-
-Your support helps drive Himmelblau’s evolution!
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/ISSUE_TEMPLATE/enhancement-request.md
 
new/himmelblau-1.4.2+git.0.52da279/.github/ISSUE_TEMPLATE/enhancement-request.md
--- 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/ISSUE_TEMPLATE/enhancement-request.md
    2025-09-24 21:12:25.000000000 +0200
+++ 
new/himmelblau-1.4.2+git.0.52da279/.github/ISSUE_TEMPLATE/enhancement-request.md
    1970-01-01 01:00:00.000000000 +0100
@@ -1,43 +0,0 @@
----
-name: Enhancement Request
-about: Suggest an idea for this project
-title: ''
-labels: ''
-assignees: ''
-
----
-
-**Summary**
-Provide a brief summary of the enhancement you are proposing.
-
-**Problem Statement**
-Explain the problem you are trying to solve with this enhancement. Describe 
any limitations, pain points, or inefficiencies that currently exist.
-
-**Proposed Solution**
-Describe your proposed solution or feature in detail. Include diagrams, code 
snippets, or examples if applicable.
-
-**Benefits**
-Explain how this enhancement would improve the project. Consider user 
experience, performance, maintainability, or any other relevant factors.
-
-**Alternatives Considered**
-List any alternative solutions you considered and why you chose not to pursue 
them.
-
-**Additional Context**
-Provide any other context or information that may be relevant to the 
enhancement. This could include links to related issues, discussions, or 
relevant documentation.
-
----
-
-### đź’ˇ Help Make It Happen!
-Want to see this feature developed faster? Fund its implementation through our 
**Backer's Bounty** program, where you choose which features get priority!
-
-[![Donate to Our 
Collective](https://opencollective.com/himmelblau/donate/button.png?color=blue)](https://himmelblau-idm.org/backers.html#backers-bounty)
-
-For US tax exempt donations:
-
-[![Donate US Tax 
Exempt](https://www.spi-inc.org/images/paypal_btn_donateCC_LG.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=8GYKFLX9UNCH2)
-
-Your support helps drive Himmelblau’s evolution!
-
----
-
-*Thank you for suggesting an enhancement to the Himmelblau project! Your input 
helps make the project better for everyone.*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/dependabot.yml 
new/himmelblau-1.4.2+git.0.52da279/.github/dependabot.yml
--- old/himmelblau-1.3.0+git.0.f8cabb7/.github/dependabot.yml   2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.github/dependabot.yml   1970-01-01 
01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
-# To get started with Dependabot version updates, you'll need to specify which
-# package ecosystems to update and where the package manifests are located.
-# Please see the documentation for all configuration options:
-# 
https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
-
-version: 2
-updates:
-  - package-ecosystem: "cargo"
-    directory: "/"
-    schedule:
-      interval: "weekly"
-    commit-message:
-      prefix: "deps(rust)"
-    ignore:
-      - dependency-name: "utoipa"
-    groups:
-      all-cargo-updates:
-        patterns:
-          - "*"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/pull_request_template.md 
new/himmelblau-1.4.2+git.0.52da279/.github/pull_request_template.md
--- old/himmelblau-1.3.0+git.0.f8cabb7/.github/pull_request_template.md 
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.github/pull_request_template.md 
1970-01-01 01:00:00.000000000 +0100
@@ -1 +0,0 @@
-Fixes #
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/ci.yml 
new/himmelblau-1.4.2+git.0.52da279/.github/workflows/ci.yml
--- old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/ci.yml 2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.github/workflows/ci.yml 1970-01-01 
01:00:00.000000000 +0100
@@ -1,155 +0,0 @@
----
-name: CI
-permissions:
-  contents: read
-
-# Trigger the workflow on push or pull request
-on:
-  pull_request:
-    branches:
-      - main
-      - stable-0.1.x
-      - stable-0.2.x
-      - stable-0.3.x
-      - stable-0.4.x
-      - stable-0.5.x
-      - stable-0.6.x
-      - stable-0.7.x
-      - stable-0.8.x
-      - stable-0.9.x
-      - stable-1.x
-
-env:
-  SCCACHE_GHA_ENABLED: "true"
-  RUSTC_WRAPPER: "sccache"
-
-concurrency:
-  group: ${{ github.workflow }}-${{ github.ref }}
-  cancel-in-progress: true
-
-jobs:
-  build:
-    name: Build
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup sccache
-        uses: mozilla-actions/[email protected]
-        with:
-          version: "v0.10.0"
-      - name: Cache Cargo
-        uses: actions/cache@v4
-        with:
-          path: |
-            ~/.cargo/registry
-            ~/.cargo/git
-            target
-          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
-          restore-keys: |
-            ${{ runner.os }}-cargo-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update && \
-          sudo apt-get install -y \
-            libpam0g-dev \
-            libudev-dev \
-            libssl-dev \
-            pkg-config \
-            tpm-udev \
-            libtss2-dev \
-            libcap-dev \
-            libdhash-dev \
-            libkrb5-dev \
-            libpcre2-dev \
-            libclang-dev \
-            autoconf \
-            gettext \
-            libdbus-1-dev \
-            libunistring-dev \
-            libgirepository1.0-dev \
-            libcairo2-dev \
-            libgdk-pixbuf2.0-dev \
-            libsoup-3.0-dev \
-            libpango1.0-dev \
-            libatk1.0-dev \
-            libgtk-3-dev \
-            libwebkit2gtk-4.1-dev
-      - name: "Fetch submodules"
-        run: git submodule init && git submodule update
-      - name: "Run build"
-        run: cargo build --all-features --all-targets
-        continue-on-error: false
-
-  clippy:
-    name: Clippy
-    runs-on: ubuntu-latest
-    needs: build
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup sccache
-        uses: mozilla-actions/[email protected]
-        with:
-          version: "v0.10.0"
-      - name: Cache Cargo
-        uses: actions/cache@v4
-        with:
-          path: |
-            ~/.cargo/registry
-            ~/.cargo/git
-            target
-          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
-          restore-keys: |
-            ${{ runner.os }}-cargo-
-      - name: "Run clippy"
-        run: cargo clippy --all-features
-        continue-on-error: true
-
-  test:
-    name: Test
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v4
-      - name: Setup sccache
-        uses: mozilla-actions/[email protected]
-        with:
-          version: "v0.10.0"
-      - name: Cache Cargo
-        uses: actions/cache@v4
-        with:
-          path: |
-            ~/.cargo/registry
-            ~/.cargo/git
-            target
-          key: ${{ runner.os }}-cargo-${{ hashFiles('**/Cargo.lock') }}
-          restore-keys: |
-            ${{ runner.os }}-cargo-
-      - name: Install dependencies
-        run: |
-          sudo apt-get update && \
-          sudo apt-get install -y \
-            libpam0g-dev \
-            libudev-dev \
-            libssl-dev \
-            pkg-config \
-            tpm-udev \
-            libtss2-dev \
-            libcap-dev \
-            libdhash-dev \
-            libkrb5-dev \
-            libpcre2-dev \
-            libclang-dev \
-            autoconf \
-            gettext \
-            libdbus-1-dev \
-            libunistring-dev \
-            libgirepository1.0-dev \
-            libcairo2-dev \
-            libgdk-pixbuf2.0-dev \
-            libsoup-3.0-dev \
-            libpango1.0-dev \
-            libatk1.0-dev \
-            libgtk-3-dev \
-            libwebkit2gtk-4.1-dev
-      - name: "Run tests"
-        run: cargo test
-        continue-on-error: false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/dependabot_auto_merge.yml 
new/himmelblau-1.4.2+git.0.52da279/.github/workflows/dependabot_auto_merge.yml
--- 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/dependabot_auto_merge.yml  
    2025-09-24 21:12:25.000000000 +0200
+++ 
new/himmelblau-1.4.2+git.0.52da279/.github/workflows/dependabot_auto_merge.yml  
    1970-01-01 01:00:00.000000000 +0100
@@ -1,46 +0,0 @@
----
-# yamllint disable rule:line-length
-name: Dependabot auto-approval and auto-merge
-"on":
-  pull_request:
-    branches:
-      - main
-      - stable-0.1.x
-      - stable-0.2.x
-      - stable-0.3.x
-      - stable-0.4.x
-      - stable-0.5.x
-      - stable-0.6.x
-      - stable-0.7.x
-      - stable-0.8.x
-      - stable-0.9.x
-      - stable-1.x
-
-permissions:
-  contents: write
-  pull-requests: write
-
-jobs:
-  dependabot:
-    runs-on: ubuntu-latest
-    # limit this to PRs opened by dependabot
-    if: ${{ github.actor == 'dependabot[bot]' }}
-    steps:
-      - name: Dependabot metadata
-        id: metadata
-        uses: dependabot/fetch-metadata@v2
-        with:
-          github-token: "${{ secrets.GITHUB_TOKEN }}"
-          alert-lookup: true
-          compat-lookup: true
-      - uses: actions/checkout@v4
-      - name: Enable auto-merge for Dependabot PRs
-        run: gh pr merge --auto --squash "$PR_URL"
-        env:
-          PR_URL: ${{github.event.pull_request.html_url}}
-          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
-      - name: Approve a PR if not already approved
-        run: scripts/dependabot_automerge_check.sh "$PR_URL"
-        env:
-          PR_URL: ${{github.event.pull_request.html_url}}
-          GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/nixosbuild-ci.yml 
new/himmelblau-1.4.2+git.0.52da279/.github/workflows/nixosbuild-ci.yml
--- old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/nixosbuild-ci.yml      
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.github/workflows/nixosbuild-ci.yml      
1970-01-01 01:00:00.000000000 +0100
@@ -1,19 +0,0 @@
----
-name: NixOS-CI
-
-# Trigger the workflow on push or pull request
-on:
-  pull_request:
-    branches:
-      - main
-
-jobs:
-  nixos:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@v4
-    - uses: cachix/install-nix-action@v25
-      with:
-        extra_nix_config: experimental-features = nix-command flakes
-    - run: nix flake check
-    - run: nix build --max-jobs 1 ".#himmelblau" ".#himmelblau-desktop"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/nixosbuild.yml 
new/himmelblau-1.4.2+git.0.52da279/.github/workflows/nixosbuild.yml
--- old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/nixosbuild.yml 
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.github/workflows/nixosbuild.yml 
1970-01-01 01:00:00.000000000 +0100
@@ -1,26 +0,0 @@
----
-name: NixOS
-permissions:
-  contents: read
-
-# Trigger the workflow on push or pull request
-on:
-  pull_request:
-    branches:
-      - stable-0.9.x
-      - stable-1.x
-
-jobs:
-  nixos:
-    runs-on: ubuntu-latest
-    steps:
-    - uses: actions/checkout@v4
-    - uses: cachix/install-nix-action@v25
-      with:
-        extra_nix_config: experimental-features = nix-command flakes
-    - uses: cachix/cachix-action@v14
-      with:
-        name: himmelblau
-        signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
-    - run: nix flake check
-    - run: nix build --no-link --print-out-paths --max-jobs 1 ".#himmelblau" 
".#himmelblau-desktop" | cachix push himmelblau
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/tag-version.yml 
new/himmelblau-1.4.2+git.0.52da279/.github/workflows/tag-version.yml
--- old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/tag-version.yml        
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.github/workflows/tag-version.yml        
1970-01-01 01:00:00.000000000 +0100
@@ -1,38 +0,0 @@
-name: Rust Version Tagging (Post-Merge)
-
-on:
-  push:
-    branches:
-      - stable-0.5.x
-      - stable-0.6.x
-      - stable-0.7.x
-      - stable-0.8.x
-      - stable-0.9.x
-      - stable-1.x
-
-permissions:
-  contents: write
-
-jobs:
-  create-tag:
-    runs-on: ubuntu-latest
-
-    steps:
-    - name: Checkout code
-      uses: actions/checkout@v3
-
-    - name: Set up Git for tagging
-      run: |
-        git config --global user.name "GitHub Action"
-        git config --global user.email "[email protected]"
-
-    - name: Extract version from Cargo.toml
-      id: get-version
-      run: |
-        VERSION=$(grep '^version =' Cargo.toml | head -n 1 | sed 's/version = 
"\(.*\)"/\1/')
-        echo "VERSION=$VERSION" >> $GITHUB_ENV
-
-    - name: Create and push a new tag
-      run: |
-        git tag "$VERSION"
-        git push origin "$VERSION"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/version-check.yml 
new/himmelblau-1.4.2+git.0.52da279/.github/workflows/version-check.yml
--- old/himmelblau-1.3.0+git.0.f8cabb7/.github/workflows/version-check.yml      
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.github/workflows/version-check.yml      
1970-01-01 01:00:00.000000000 +0100
@@ -1,39 +0,0 @@
-name: Rust Version Check (Pre-Merge)
-
-on:
-  pull_request:
-    types: [opened, synchronize]
-
-permissions:
-  contents: read
-
-jobs:
-  check-version:
-    runs-on: ubuntu-latest
-
-    steps:
-    - name: Checkout code
-      uses: actions/checkout@v3
-
-    - name: Set up Rust
-      uses: actions-rs/toolchain@v1
-      with:
-        toolchain: stable
-        override: true
-
-    - name: Extract version from Cargo.toml
-      id: get-version
-      run: |
-        VERSION=$(grep '^version =' Cargo.toml | head -n 1 | sed 's/version = 
"\(.*\)"/\1/')
-        echo "VERSION=$VERSION" >> $GITHUB_ENV
-        echo "Package version: $VERSION"
-
-    - name: Check if tag exists for the version
-      run: |
-        git fetch --tags
-        if git rev-parse "$VERSION" >/dev/null 2>&1; then
-          echo "Git tag for version $VERSION already exists!"
-          exit 1
-        else
-          echo "No existing tag found for version $VERSION."
-        fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/himmelblau-1.3.0+git.0.f8cabb7/.gitignore 
new/himmelblau-1.4.2+git.0.52da279/.gitignore
--- old/himmelblau-1.3.0+git.0.f8cabb7/.gitignore       2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/.gitignore       1970-01-01 
01:00:00.000000000 +0100
@@ -1,23 +0,0 @@
-# ---> Rust
-# Generated by Cargo
-# will have compiled files and executables
-debug/
-target/
-
-# nix output link
-result
-result-man
-result-doc
-
-# These are backup files generated by rustfmt
-**/*.rs.bk
-
-# MSVC Windows builds of rustc generate these, which store debugging 
information
-*.pdb
-
-vendor/
-tags
-packaging/
-
-# VM image for nixos testing
-*.qcow2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/himmelblau-1.3.0+git.0.f8cabb7/Cargo.lock 
new/himmelblau-1.4.2+git.0.52da279/Cargo.lock
--- old/himmelblau-1.3.0+git.0.f8cabb7/Cargo.lock       2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/Cargo.lock       2025-10-27 
20:28:53.000000000 +0100
@@ -4,7 +4,7 @@
 
 [[package]]
 name = "aad-tool"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "anyhow",
  "broker-client",
@@ -633,7 +633,7 @@
 
 [[package]]
 name = "broker"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "dbus",
  "himmelblau_unix_common",
@@ -644,7 +644,7 @@
 
 [[package]]
 name = "broker-client"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "serde_json",
  "zbus",
@@ -752,9 +752,9 @@
 
 [[package]]
 name = "cc"
-version = "1.2.38"
+version = "1.2.39"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "80f41ae168f955c12fb8960b057d70d0ca153fb83182b57d86380443527be7e9"
+checksum = "e1354349954c6fc9cb0deab020f27f783cf0b604e8bb754dc4658ecf0d29c35f"
 dependencies = [
  "find-msvc-tools",
  "shlex",
@@ -2131,7 +2131,7 @@
 
 [[package]]
 name = "himmelblau_policies"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -2153,7 +2153,7 @@
 
 [[package]]
 name = "himmelblau_unix_common"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "anyhow",
  "async-trait",
@@ -2194,7 +2194,7 @@
 
 [[package]]
 name = "himmelblaud"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "async-trait",
  "base64 0.22.1",
@@ -2580,7 +2580,7 @@
 
 [[package]]
 name = "idmap"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "bindgen 0.72.1",
  "cc",
@@ -2782,7 +2782,7 @@
 
 [[package]]
 name = "kanidm_lib_crypto"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "argon2",
  "base64 0.22.1",
@@ -2806,7 +2806,7 @@
 
 [[package]]
 name = "kanidm_lib_file_permissions"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "kanidm_utils_users",
  "whoami",
@@ -2814,7 +2814,7 @@
 
 [[package]]
 name = "kanidm_proto"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "base32",
  "base64urlsafedata",
@@ -2834,7 +2834,7 @@
 
 [[package]]
 name = "kanidm_utils_users"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "libc",
 ]
@@ -2900,9 +2900,9 @@
 
 [[package]]
 name = "libhimmelblau"
-version = "0.7.16"
+version = "0.7.19"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8d7d85c9aa04d6e54d7b305071d1f6a6a2ad542bacb2356eae3cfff1a8148118"
+checksum = "ec657afd7aac26c2c31bba7915c1584b07cb2a8401e92946c6b2d1a1d6da4b12"
 dependencies = [
  "base64 0.22.1",
  "browser-window",
@@ -2923,6 +2923,7 @@
  "reqwest",
  "reqwest_cookie_store",
  "scraper",
+ "semver",
  "serde",
  "serde_bytes",
  "serde_json",
@@ -3263,13 +3264,14 @@
 
 [[package]]
 name = "nss_himmelblau"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "himmelblau_unix_common",
  "lazy_static",
  "libc",
  "libnss",
  "paste",
+ "uuid",
 ]
 
 [[package]]
@@ -3598,7 +3600,7 @@
 
 [[package]]
 name = "pam_himmelblau"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "himmelblau_unix_common",
  "libc",
@@ -4153,7 +4155,7 @@
 
 [[package]]
 name = "qr-greeter"
-version = "1.3.0"
+version = "1.4.2"
 
 [[package]]
 name = "quote"
@@ -4260,9 +4262,9 @@
 
 [[package]]
 name = "regex"
-version = "1.11.2"
+version = "1.11.3"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "23d7fd106d8c02486a8d64e778353d1cffe08ce79ac2e82f540c86d0facf6912"
+checksum = "8b5288124840bee7b386bc413c487869b360b2b4ec421ea56425128692f2a82c"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -4272,9 +4274,9 @@
 
 [[package]]
 name = "regex-automata"
-version = "0.4.9"
+version = "0.4.11"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "809e8dc61f6de73b46c85f4c96486310fe304c434cfa43669d7b40f711150908"
+checksum = "833eb9ce86d40ef33cb1306d8accf7bc8ec2bfea4355cbdebb3df68b40925cad"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -4678,9 +4680,9 @@
 
 [[package]]
 name = "serde"
-version = "1.0.226"
+version = "1.0.228"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "0dca6411025b24b60bfa7ec1fe1f8e710ac09782dca409ee8237ba74b51295fd"
+checksum = "9a8e94ea7f378bd32cbbd37198a4a91436180c5bb472411e48b5ec2e2124ae9e"
 dependencies = [
  "serde_core",
  "serde_derive",
@@ -4718,18 +4720,18 @@
 
 [[package]]
 name = "serde_core"
-version = "1.0.226"
+version = "1.0.228"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ba2ba63999edb9dac981fb34b3e5c0d111a69b0924e253ed29d83f7c99e966a4"
+checksum = "41d385c7d4ca58e59fc732af25c3983b67ac852c1a25000afe1175de458b67ad"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.226"
+version = "1.0.228"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "8db53ae22f34573731bafa1db20f04027b2d25e02d8205921b569171699cdb33"
+checksum = "d540f220d3187173da220f885ab66608367b6574e925011a9353e4badda91d79"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -4909,7 +4911,7 @@
 
 [[package]]
 name = "sketching"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "num_enum",
  "opentelemetry",
@@ -5003,11 +5005,11 @@
 
 [[package]]
 name = "sshd-config"
-version = "1.3.0"
+version = "1.4.2"
 
 [[package]]
 name = "sso"
-version = "1.3.0"
+version = "1.4.2"
 dependencies = [
  "broker-client",
  "clap",
@@ -6469,9 +6471,9 @@
 
 [[package]]
 name = "zeroize"
-version = "1.8.1"
+version = "1.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index";
-checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde"
+checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0"
 dependencies = [
  "serde",
  "zeroize_derive",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/himmelblau-1.3.0+git.0.f8cabb7/Cargo.toml 
new/himmelblau-1.4.2+git.0.52da279/Cargo.toml
--- old/himmelblau-1.3.0+git.0.f8cabb7/Cargo.toml       2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/Cargo.toml       2025-10-27 
20:28:53.000000000 +0100
@@ -21,7 +21,7 @@
 resolver = "2"
 
 [workspace.package]
-version = "1.3.0"
+version = "1.4.2"
 authors = [
     "David Mulder <[email protected]>"
 ]
@@ -36,12 +36,12 @@
 pkg-config = "^0.3.32"
 lazy_static = "^1.4.0"
 paste = "^1.0.12"
-serde = { version = "^1.0.226", features = ["derive"] }
+serde = { version = "^1.0.228", features = ["derive"] }
 serde_json = "^1.0.145"
 tracing-subscriber = "^0.3.20"
 tracing = "^0.1.37"
 himmelblau_unix_common = { path = "src/common" }
-libhimmelblau = { version = "0.7.16", features = ["broker", "changepassword", 
"on_behalf_of"] }
+libhimmelblau = { version = "0.7.19", features = ["broker", "changepassword", 
"on_behalf_of"] }
 clap = { version = "^4.5", features = ["derive", "env"] }
 clap_complete = "^4.5.58"
 reqwest = { version = "^0.12.23", features = ["json"] }
@@ -54,7 +54,7 @@
 chrono = "^0.4.42"
 os-release = "^0.1.0"
 jsonwebtoken = "^9.2.0"
-zeroize = "^1.7.0"
+zeroize = "^1.8.2"
 idmap = { path = "src/idmap" }
 identity_dbus_broker = "0.1.4"
 rustls = ">=0.23.19" # CVE-2024-11738
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/images/rpm/Dockerfile.rocky10 
new/himmelblau-1.4.2+git.0.52da279/images/rpm/Dockerfile.rocky10
--- old/himmelblau-1.3.0+git.0.f8cabb7/images/rpm/Dockerfile.rocky10    
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/images/rpm/Dockerfile.rocky10    
2025-10-27 20:28:53.000000000 +0100
@@ -1,5 +1,5 @@
 # Use the official Rocky Linux 10 image as the base
-FROM rockylinux:10
+FROM rockylinux/rockylinux:10
 
 # Enable CRB repository (needed for some devel packages)
 RUN dnf install -y 'dnf-command(config-manager)' && \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/images/rpm/Dockerfile.rocky8 
new/himmelblau-1.4.2+git.0.52da279/images/rpm/Dockerfile.rocky8
--- old/himmelblau-1.3.0+git.0.f8cabb7/images/rpm/Dockerfile.rocky8     
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/images/rpm/Dockerfile.rocky8     
2025-10-27 20:28:53.000000000 +0100
@@ -1,5 +1,5 @@
 # Use the official Rocky Linux 8 image as the base
-FROM rockylinux:8
+FROM rockylinux/rockylinux:8
 
 # Set environment variables for non-interactive installs
 ENV YUM_VERSION=8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/images/rpm/Dockerfile.rocky9 
new/himmelblau-1.4.2+git.0.52da279/images/rpm/Dockerfile.rocky9
--- old/himmelblau-1.3.0+git.0.f8cabb7/images/rpm/Dockerfile.rocky9     
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/images/rpm/Dockerfile.rocky9     
2025-10-27 20:28:53.000000000 +0100
@@ -1,5 +1,5 @@
 # Use the official Rocky Linux 9 image as the base
-FROM rockylinux:9
+FROM rockylinux/rockylinux:9
 
 # Set environment variables for non-interactive installs
 ENV YUM_VERSION=8
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/himmelblau-1.3.0+git.0.f8cabb7/src/common/Cargo.toml 
new/himmelblau-1.4.2+git.0.52da279/src/common/Cargo.toml
--- old/himmelblau-1.3.0+git.0.f8cabb7/src/common/Cargo.toml    2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/src/common/Cargo.toml    2025-10-27 
20:28:53.000000000 +0100
@@ -48,7 +48,7 @@
 csv = { workspace = true }
 sketching = { workspace = true }
 kanidm_lib_file_permissions.workspace = true
-regex = "1.11.2"
+regex = "1.11.3"
 sha2 = "0.10.9"
 base64.workspace = true
 authenticator = { version = "0.4.1", default-features = false, features = 
["crypto_openssl"] }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/src/common/src/idprovider/himmelblau.rs 
new/himmelblau-1.4.2+git.0.52da279/src/common/src/idprovider/himmelblau.rs
--- old/himmelblau-1.3.0+git.0.f8cabb7/src/common/src/idprovider/himmelblau.rs  
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/src/common/src/idprovider/himmelblau.rs  
2025-10-27 20:28:53.000000000 +0100
@@ -49,7 +49,6 @@
 use regex::Regex;
 use reqwest;
 use reqwest::Url;
-use serde::{Deserialize, Serialize};
 use std::collections::HashMap;
 use std::sync::Arc;
 use std::thread::sleep;
@@ -78,9 +77,6 @@
     }};
 }
 
-#[derive(Deserialize, Serialize)]
-struct Token(Option<String>, String);
-
 pub struct HimmelblauMultiProvider {
     config: Arc<RwLock<HimmelblauConfig>>,
     providers: Arc<RwLock<HashMap<String, HimmelblauProvider>>>,
@@ -2934,6 +2930,15 @@
             Some(name) => name,
             None => value.id.clone(),
         };
+        // Prohibit group names which look like a UPN
+        if name.contains("@") {
+            // Including the "@" symbol in a group name is discouraged by MS,
+            // and permits a potential name collision risk (a user could
+            // create a group which collides with a fake primary group).
+            // Group names with an "@" will also resolve via NSS, which we
+            // NEVER permit (see CVE-2025-49012).
+            return Err(anyhow!("Group names cannot contain the '@' symbol."));
+        }
         let id =
             Uuid::parse_str(&value.id).map_err(|e| anyhow!("Failed parsing 
user uuid: {}", e))?;
         let idmap = self.idmap.read().await;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/himmelblau-1.3.0+git.0.f8cabb7/src/idmap/Cargo.toml 
new/himmelblau-1.4.2+git.0.52da279/src/idmap/Cargo.toml
--- old/himmelblau-1.3.0+git.0.f8cabb7/src/idmap/Cargo.toml     2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/src/idmap/Cargo.toml     2025-10-27 
20:28:53.000000000 +0100
@@ -19,5 +19,5 @@
 uuid.workspace = true
 
 [build-dependencies]
-cc = "1.2.38"
+cc = "1.2.39"
 bindgen = "0.72.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/himmelblau-1.3.0+git.0.f8cabb7/src/nss/Cargo.toml 
new/himmelblau-1.4.2+git.0.52da279/src/nss/Cargo.toml
--- old/himmelblau-1.3.0+git.0.f8cabb7/src/nss/Cargo.toml       2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/src/nss/Cargo.toml       2025-10-27 
20:28:53.000000000 +0100
@@ -21,6 +21,7 @@
 libc = { workspace = true }
 paste = { workspace = true }
 lazy_static = { workspace = true }
+uuid = { workspace = true }
 
 [package.metadata.deb]
 name = "nss-himmelblau"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/src/nss/src/implementation.rs 
new/himmelblau-1.4.2+git.0.52da279/src/nss/src/implementation.rs
--- old/himmelblau-1.3.0+git.0.f8cabb7/src/nss/src/implementation.rs    
2025-09-24 21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/src/nss/src/implementation.rs    
2025-10-27 20:28:53.000000000 +0100
@@ -16,6 +16,7 @@
 use libnss::group::{Group, GroupHooks};
 use libnss::interop::Response;
 use libnss::passwd::{Passwd, PasswdHooks};
+use uuid::Uuid;
 
 struct HimmelblauPasswd;
 libnss_passwd_hooks!(himmelblau, HimmelblauPasswd);
@@ -274,7 +275,6 @@
             }
         };
         let upn = cfg.map_name_to_upn(&name);
-        let req = ClientRequest::NssGroupByName(upn.clone());
         let mut daemon_client = match 
DaemonClientBlocking::new(cfg.get_socket_path().as_str()) {
             Ok(dc) => dc,
             Err(_) => {
@@ -282,67 +282,69 @@
             }
         };
 
-        let resp = match daemon_client
-            .call_and_wait(&req, cfg.get_unix_sock_timeout())
-            .map(|r| match r {
-                ClientResponse::NssGroup(opt) => opt
-                    .map(|ng| {
-                        let mut group = group_from_nssgroup(ng);
-                        group.name = cfg.map_upn_to_name(&group.name);
-                        group.members = group
-                            .members
-                            .into_iter()
-                            .map(|member| cfg.map_upn_to_name(&member))
-                            .collect();
-                        Response::Success(group)
-                    })
-                    .unwrap_or_else(|| Response::NotFound),
-                _ => Response::NotFound,
-            })
-            .unwrap_or_else(|_| Response::NotFound)
-        {
+        // Attempt to respond to a request for the fake primary group name.
+        match if upn.contains("@") {
+            let req = ClientRequest::NssGroupByName(upn);
+            daemon_client
+                .call_and_wait(&req, cfg.get_unix_sock_timeout())
+                .map(|r| match r {
+                    ClientResponse::NssGroup(opt) => opt
+                        .map(|ng| {
+                            let mut group = group_from_nssgroup(ng);
+                            group.name = cfg.map_upn_to_name(&group.name);
+                            group.members = group
+                                .members
+                                .into_iter()
+                                .map(|member| cfg.map_upn_to_name(&member))
+                                .collect();
+                            Response::Success(group)
+                        })
+                        .unwrap_or_else(|| Response::NotFound),
+                    _ => Response::NotFound,
+                })
+                .unwrap_or_else(|_| Response::NotFound)
+        } else {
+            Response::NotFound
+        } {
             Response::NotFound => {
                 // If the mapped UPN name isn't found, then this is probably a
                 // real Entra Id group, instead of a fake primary group.
-                let req = ClientRequest::NssGroupByName(name.clone());
-                daemon_client
-                    .call_and_wait(&req, cfg.get_unix_sock_timeout())
-                    .map(|r| match r {
-                        ClientResponse::NssGroup(opt) => opt
-                            .map(|ng| {
-                                let mut group = group_from_nssgroup(ng);
-                                group.members = group
-                                    .members
-                                    .into_iter()
-                                    .map(|member| cfg.map_upn_to_name(&member))
-                                    .collect();
-                                Response::Success(group)
-                            })
-                            .unwrap_or_else(|| Response::NotFound),
-                        _ => Response::NotFound,
-                    })
-                    .unwrap_or_else(|_| Response::NotFound)
-            }
-            other => other,
-        };
-        match resp {
-            Response::Success(group) => {
-                // Never ever EVER respond to a group request by Entra Id group
-                // name. This is a SECURITY RISK! See CVE-2025-49012. Group
-                // names ARE NOT unique in Entra Id. Responding to this name
-                // request could expose SUDO and other privileged commands to
-                // an attacker. Admins should only ever specify group names in
-                // configuration via the Object Id GUID or the GID. Ignoring
-                // this request will still permit commands such as `ls`, etc
-                // to display the group name, while prohibiting dangerous
-                // behavior.
-                if group.name.to_lowercase() == name.to_lowercase() {
-                    Response::NotFound
+                //
+                // If this appears to be a GUID, we can respond to that 
request (but
+                // we have to validate that GUID wasn't the Group name!).
+                if Uuid::parse_str(&name).is_ok() {
+                    let req = ClientRequest::NssGroupByName(name.clone());
+                    daemon_client
+                        .call_and_wait(&req, cfg.get_unix_sock_timeout())
+                        .map(|r| match r {
+                            ClientResponse::NssGroup(opt) => opt
+                                .map(|ng| {
+                                    let group = group_from_nssgroup(ng);
+                                    // We can only respond if the request was 
not by name
+                                    if name.to_lowercase() != 
group.name.to_lowercase() {
+                                        Response::Success(group)
+                                    } else {
+                                        Response::NotFound
+                                    }
+                                })
+                                .unwrap_or_else(|| Response::NotFound),
+                            _ => Response::NotFound,
+                        })
+                        .unwrap_or_else(|_| Response::NotFound)
                 } else {
-                    Response::Success(group)
+                    // Never ever EVER respond to a group request by Entra Id 
group
+                    // name. This is a SECURITY RISK! See CVE-2025-49012. Group
+                    // names ARE NOT unique in Entra Id. Responding to this 
name
+                    // request could expose SUDO and other privileged commands 
to
+                    // an attacker. Admins should only ever specify group 
names in
+                    // configuration via the Object Id GUID or the GID. 
Ignoring
+                    // this request will still permit commands such as `ls`, 
etc
+                    // to display the group name, while prohibiting dangerous
+                    // behavior.
+                    Response::NotFound
                 }
             }
-            _ => resp,
+            other => other,
         }
     }
 }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/himmelblau-1.3.0+git.0.f8cabb7/src/policies/Cargo.toml 
new/himmelblau-1.4.2+git.0.52da279/src/policies/Cargo.toml
--- old/himmelblau-1.3.0+git.0.f8cabb7/src/policies/Cargo.toml  2025-09-24 
21:12:25.000000000 +0200
+++ new/himmelblau-1.4.2+git.0.52da279/src/policies/Cargo.toml  2025-10-27 
20:28:53.000000000 +0100
@@ -20,7 +20,7 @@
 serde_json = { workspace = true }
 anyhow = { workspace = true }
 async-trait = { workspace = true }
-regex = "^1.11.2"
+regex = "^1.11.3"
 base64.workspace = true
 tokio.workspace = true
 himmelblau_unix_common = { workspace = true }

++++++ vendor.tar.zst ++++++
/work/SRC/openSUSE:Factory/himmelblau/vendor.tar.zst 
/work/SRC/openSUSE:Factory/.himmelblau.new.2061/vendor.tar.zst differ: char 7, 
line 1

Reply via email to