{"document":{"aggregate_severity":{"namespace":"https://www.suse.com/support/security/rating/","text":"moderate"},"category":"csaf_security_advisory","csaf_version":"2.0","distribution":{"text":"Copyright 2024 SUSE LLC. All rights reserved.","tlp":{"label":"WHITE","url":"https://www.first.org/tlp/"}},"lang":"en","notes":[{"category":"summary","text":"Security update for osc, obs-scm-bridge","title":"Title of the patch"},{"category":"description","text":"This update for osc, obs-scm-bridge fixes the following issues:\n\nChanges in osc:\n\n- 1.24.0\n  - Command-line:\n    - Add '--target-owner' option to 'git-obs repo fork' command\n    - Add '--self' parameter to fix 'no matching parent repo' error message in 'git-obs pr create'\n    - Fix 'osc aggregatepac' for scmsync packages\n    - Fix 'osc build' to retrieve buildconfig from git package's cache\n    - Fix 'osc token' error handling for project wide trigger\n    - Fix string formatting for id in obs-request.xml in 'git-obs pr dump'\n  - Library:\n    - Consolidate build types in build.py and commandline.py\n    - Fix build.get_build_type() by comparing binary_type only if specified\n    - Make use of queryconfig tool configurable and consistent\n    - Fix how get_request_collection() filters the projects and packages\n    - Support copying packages from an scmsync source, when target exists\n    - Add timestamps to the DEBUG output\n    - Update new project template\n\n- 1.23.0\n  - Command-line:\n    - Add '--target-owner' option to 'git-obs pr create' to specify the target owner explicitly\n    - Add '--target-branch' option to 'git-obs staging search' command\n    - Added 'git-obs staging search' command to find project PRs with referenced package PRs that have all been approved\n    - Change 'git-obs pr dump' to produce directories that match the specified pull request IDs\n    - Change 'git-obs pr dump' to write STATUS file\n    - Properly error out on invalid 'PR:' references in 'git-obs pr dump'\n    - Fix 'git-obs pr create' when the source repo is not a fork\n    - Fix 'git-obs api' command when server returns 'null'\n    - Fix 'osc build --alternative-project=...' when there's no .osc in the current directory\n    - Fix argument and store handling in 'osc results' command\n  - Library:\n    - Add Manifest.get_package_paths() method that lists all paths to existings packages in a project\n    - Fix Manifest class to handle loading empty YAML files or strings\n    - Fix working with meta during git rebase by determining the current branch from rebase head\n    - Fix handling local branch when fetching remote\n    - Move get_label_ids() from PullRequest to Repo class\n    - Change GitStore not to require apiurl anymore\n    - Fix storing last_buildroot for git packages\n    - Store the last buildroot only if there's a store detected\n    - Fix BuildRoot so it acts as a tuple and the individual values are accessible via indexes\n    - Make PullReqest.parse_id() more permissive by accepting trailing whitespaces\n    - Fix 'missingok' argument in server_diff()\n    - Fix gitea_api.PullRequest ordering methods\n    - Add return to gitea_api.Branch.list()\n\n- PKGBUILD changes\n  * Remove redundant packages from makedepends. If a package depends\n    on something, it implicitly makedepends on it as well\n  * Add python-ruamel-yaml dependency\n  * Build and install man pages\n  * Add python-argparse-manpage and python-sphinx to makedepends for\n    building man pages\n  * Add check() to run the test suite\n  * Add checkdepends for test suite dependencies\n  * Add optdepends as an equivalent to RPM's Recommends, making it\n    easier for users to find packages needed for optional features\n  * Use $pkgname variable across the script\n  * Install shell completion files\n  * Bump pkgrel\n\n- 1.22.0\n  - Command-line:\n    - Add 'git-obs staging' commands\n    - Add '--gitea-fork-org' option to 'osc fork' command\n    - Add '--git-branch' option to 'osc fork' command\n    - Add 'DELETE' to 'git-obs api' allowed methods\n    - Add commit messages as commented lines to the template in 'git-obs pr create'\n    - Add filtering by label to 'git-obs pr list'\n    - Properly handle fork mismatch in 'osc fork'\n    - Change 'osc build' to build from any git repo if '--alternative-project' is specified\n    - Fix 'osc service' for git based packages\n    - Fix 'git-obs pr dump' to skip the dump if the target has the same updated_at timestamp as the pull request in Gitea\n    - Fix 'git-obs pr dump' to do case insensitive check on owner and repo\n    - Fix retrieving 'arch' argument in 'osc buildlog'\n  - Library:\n    - Add 'status' to the output of gitea_api.Git.get_submodules()\n    - Add 'remote' argument to gitea_api.Repo.clone_or_update()\n    - Add gitea_api.common.TemporaryDirectory class that supports 'delete' argument on python 3.6+\n    - Add gitea_api.GitDiffGenerator class for creating submodule diffs without a git checkout\n    - Add 'depth' argument to gitea_api.Repo.clone() and clone_or_update()\n    - Add gitea_api.StagingPullRequestWrapper class for handling staging\n    - Add gitea_api.PullRequest.get_host_owner_repo_number() method\n    - Make GitObsCommand.add_argument_owner_repo() and add_argument_owner_repo_pull() reusable by allowing setting 'dest' argument\n    - Warn if the git package doesn't have the same branch as the parent project\n    - Extend gitea_api.PullRequest with methods that work with 'PR:' references\n    - Support setting labels in gitea_api.PullRequest.create()\n    - Fix gitea_api to use pagination instead of limit -1 everywhere\n    - Remove duplicate, unused PullRequestReview class from gitea_api.pr\n    - Move clone_or_update() from 'git-obs pr dump' command to gitea_api.Repo\n    - Change gitea_api.Repo.clone_or_update() to take 'ssh_private_key_path' argument\n    - Improve performance of gitea_api.IssueTimelineEntry by listing and caching requests instead of fetching them one by one\n    - Make GitObsCommand.add_argument_owner_repo() and add_argument_owner_repo_pull() reusable by allowing setting 'help' argument\n    - Change gitea_api.Repo.clone() to stop borrowing objects when 'reference' or 'reference_if_able' is used\n    - Fix the resulting dictionary in gitea_api.PullRequest._get_label_ids()\n    - Make gitea_api.RepoExists exception more helpful by giving a hint to fork under a different name\n    - Use server_diff() instead of server_diff_noex() to exit with a non-zero return code\n    - Return preinstallimage.info and allow podman to use preinstallimage\n\n- 1.21.0\n  - Command-line:\n    - Modify osc subcommands to error out if they don't work with git\n    - Add 'git-obs meta' commands for managing the local metadata\n    - Add 'git-obs meta info' command for printing resolved metadata about the current checkout\n    - Add -b/--branch option to 'git-obs repo clone' command\n    - Add 'git-obs pr dump' command to store pull request information on disk\n    - Add 'git-obs --quiet' option (that mutes printing gitea settings now)\n    - Automatially pull meta after 'git-obs repo clone'\n    - Change 'git-obs pr review interactive' to write 'merge ok' comment instead of scheduling a merge\n    - Mute stderr when creating a worktree in 'git-obs pr review interactive'\n    - Change 'git-obs -G' to accept url to select a gitea login entry\n    - Support substitutions in 'osc build --root'\n    - Fix crash in 'osc build' when 'build_repositories' in store was None\n    - Fix filtering by reviewers in 'git-obs pr list'\n    - Update 'osc rq show' command to include history comments in verbose mode\n  - Library:\n    - Refactor GitStore\n      - Migrate git_scm.Store over to gitea_api.Git\n      - Store buildinfo and buildconfig files in GitStore's cache instead directly in the repo\n      - Move code from 'git-obs meta pull' command to GitStore.pull()\n      - Improve GitStore.pull() to support reading project from project.build\n      - Rephrase the error message about detached HEAD in GitStore\n      - Improve GitStore's error messages by adding instructions on how to fix missing metadata\n      - Be more permissive when loading parent project_store in GitStore\n      - Fix loading _manifest in a project git\n      - Fix git store to check if all the required fields are present\n    - Derive package name from topdir if a package is part of a project checkout\n    - Change 'git-obs pr review interactive' to run pager process as a context manager\n    - Change obs_api.TarDiff to spawn a process extracting archives as a context manager\n    - Change 'commit' argument in gitea_api.Git.reset() to optional\n    - Add gitea_api.Git.get_owner_repo_from_url() staticmethod\n    - Add gitea_api.Git.urljoin() static method\n    - Fix gitea_api.Git.get_branch_head() to raise a proper exception if the HEAD cannot be retrieved\n    - Fix gitea_api.Git to work with the current remote instead of 'origin'\n    - Fix get_store() to throw the exception from git store if .osc directory is not present\n    - Introduce GitObsRuntimeError exception and use it where appropriate\n    - Fix tardiff by removing directories with shutil.rmtree() and files by os.unlink()\n    - Add 'quiet' option to gitea_api.Git.switch()\n    - Mute stderr in git_obs.Git.lfs_cat_file()\n    - Treat None flavor as \"\" in multibuild resolve\n    - Make Token.triggered_at optional as it's not available in the oficially released OBS code\n    - Add BaseModel.from_string() and BaseModel.to_string() methods\n    - Add BaseModel.from_file() and BaseModel.to_file() methods\n    - Fix BaseModel to initialize from a dictionary via __init__ instead of setattr\n  - Docs:\n    - Update docs for the new git metadata store\n    - Update list of recommended gitea permissions in git-obs-quickstart\n  - Spec:\n    - Install git-obs-metadata man page\n\n- 1.20.0\n  - Command-line:\n    - Fix 'osc fork' command to use the right tracking branch\n    - Fix 'osc blt' command by checking if the working copy is a package\n    - Make 'osc buildlog' work outside of osc package directory\n    - Add 'git-obs pr close' and 'git-obs pr reopen' commands\n    - Add 'close' option to 'git-obs pr review interactive'\n    - Change 'git-obs pr review interactive' to work with all archives, not only those in Git LFS\n    - Fix checkout of the base branch in 'git-obs pr review interactive' command\n  - Library:\n    - Support _manifest file in git store\n    - Allow pull request IDs in '<owner>/<repo>!<number>' format\n    - Properly handle deleted users and teams in the git-obs timeline\n    - Handle situations when there's 'None' among timeline entries\n    - Skip binary files in gitea_api.PullRequest.get_patch()\n    - Change get_user_input(), add support for vertically printed list of answers\n  - Spec:\n    - Provide git-obs\n\n- 1.19.1\n  - Command-line:\n    - Use OSC_PACKAGE_CACHE_DIR env var instead of deprecated OSC_PACKAGECACHEDIR\n  - Connection:\n    - Check for both upper and lowercase versions of HTTP_PROXY and HTTPS_PROXY env vars\n  - Library:\n    - Add 'trackingbranch' field to ScmsyncObsinfo model\n    - Revert \"Return None if GitStore cannot determine apiurl\"\n    - Throw a proper exception when 'apiurl' argument of 'makeurl()' is empty\n    - Move code setting apiurl from store to 'osc.conf.get_config()'\n    - Simplify 'osc.commandline.Osc.get_api_url()' to return the value from 'self.options'\n    - Remove 'osc.commandline.Osc.post_argparse()' because it's no longer used\n    - Fix unit tests to use the new code path to run osc\n    - Fix osc.gitea_api.dt_sanitize() by replacing dateutil with datetime\n\n- 1.19.0\n  - Command-line:\n    - Add 'git-obs pr cancel-scheduled-merge' command\n    - Add timeline to 'git-obs pr review interactive'\n    - Add '--timeline' option to 'git-obs pr get'\n    - Fix 'git-obs pr search' by using pagination to retrieve all results\n    - Extend '--message' option in git-obs subcommands with the '-m' short option\n    - Add a different message for scheduled merges in 'git-obs pr merge' command\n  - Library:\n    - Add 'conn' parameter to gitea_api.common.GiteaModel\n    - Add gitea_api.Connection.scheme attribute\n    - Add gitea_api.PullRequest.merge_commit property\n    - Add gitea_api.PullRequest.get_owner_repo_number()\n    - Add gitea_api.common.dt_sanitize() for sanitizing datetime strings\n    - Handle missing head repo in the PullRequest properties\n    - Return None if GitStore cannot determine apiurl\n    - Remove extra newline from store files\n    - Fix the 'Move remaining imports in osc.babysitter into try-except block' change by preserving the order of handling the exceptions\n  - Spec:\n    - Use primary_python to define runtime requires matching the shebang lines\n    - Provide %{use_python_pkg}-osc for all pythons and python3-osc for primary_python\n    - Add conflict with obs-scm-bridge < 0.7.3\n\n- 1.18.0\n  - Command-line:\n    - Add 'git-obs pr comment [--message=...]' command\n    - Add 'git-obs pr show-patch' command\n    - Add '--reviewer' option to 'git-obs pr review {approve,decline,interactive}' to support group reviews via group review bot\n    - Update 'git-obs pr review interactive' to return non-zero return codes for 'exit' and 'skip' actions\n    - Make 'osc results --show-excluded' work in a project context\n    - Add '--no-pager' global option\n    - Fix 'osc fork' by copying whole query part to the new scmsync url\n    - Fix 'osc buildinfo' for git packages by handing the 'build_repositories' files by store objects\n    - Fix crash in 'git-obs pr get --patch'\n    - Fix git-obs to exit with 130 on keyboard interrupt\n    - Fix --sccache help typo in 'osc build' command\n  - Connection:\n    - Don't retry requests on 504 Gateway Timeout\n  - Library:\n    - If a devel project is not specified, try reading it from a mapping from URL set in OBS:GitDevelProjectMap project attribute\n    - Improve detection of packages and projects in git\n    - scmsync_obsinfo: Pass correct revision to obs-scm-bridge\n    - Add obs_api.Request.search() method\n    - Raise an exception if obs-scm-bridge fails\n    - Fix obs_scm.Package.get_pulled_srcmd5() returning an empty string\n    - Fix git store to support non-default remote\n    - Extend 'gitea_api.User.get()' to take 'username' parameter\n    - Move get_editor() and related functions from command-line module to gitea_api.common\n    - Migrate subcommands from using Store() to get_store() that is git aware\n    - Make imports lazy to imporove osc load times\n\nChanges in obs-scm-bridge:\n\n- use the system default python version (boo#1247410)\n\n- 0.7.4\n  * syntax fix\n\n- 0.7.3\n  * fix .gitsubmodule parser to handle space and tabs mixed\n\n- package /etc/obs/service directories\n\n- 0.7.2\n  * Improved error reporting of invalid files in package subdirs\n  * Introducing a mechanic to limit asset handling\n\n- 0.7.1\n  * export trackingbranch to scmsync.obsinfo\n\n- 0.7.0\n  * supporting _manifest file as successor of _subdirs\n  * record configured branch of submodules in package scmsync url\n  * stay on the configured branch of a submodule on checkout\n\n- 0.6.3\n  * Allow ssh:// scm urls as used by osc\n  * project mode: avoid unecessary changes in package meta url\n  * code cleanup\n\n- fix dependency (it is python3-PyYAML)\n\n- fix missing dependency to PyYAML\n\n- 0.6.2\n  * Make project mode always look for _config in the top dir, also\n    when using subdirs.\n\n- 0.6.1\n  * new noobsinfo query parameter\n    (can be used to hide git informations in sources, binaries\n     won't contain them either then).\n\n- 0.6.0\n  * project mode: switching to to track package sources using\n                  git sha sums instead of md5sum via download_assets\n\n- 0.5.4\n  * fixed support of subdir parameter usage on project level\n  * Fix handling of projectscmsync in the package xml writers\n\n- 0.5.3\n  * Switch to ssh url when using the bridge via osc\n\n- 0.5.2\n  * Don't overwrite files from git, but complain instead with\n    an error. For example _scmsync.obsinfo file must not be part\n    of the git tree. boo#1230469 CVE-2024-22038\n\n- 0.5.1\n  * Don't generate _scmsync.obsinfo outside of OBS source server\n    import use case (eg. no more for osc co)\n  * Enforce python 3.11 requirement\n  * Fix export of _scmsync.obsinfo in project mode\n  * Fix submodule detection\n  * EXPERIMENTAL: support multiple package subdirs via _subdirs\n                  file. This syntax will change!\n                  (not documented on purpose therefore atm)\n  * Using git credential manager\n  * Report some errors as transient, so that OBS can re-try\n","title":"Description of the patch"},{"category":"details","text":"openSUSE-Leap-16.0-packagehub-162","title":"Patchnames"},{"category":"legal_disclaimer","text":"CSAF 2.0 data is provided by SUSE under the Creative Commons License 4.0 with Attribution (CC-BY-4.0).","title":"Terms of use"}],"publisher":{"category":"vendor","contact_details":"https://www.suse.com/support/security/contact/","name":"SUSE Product Security Team","namespace":"https://www.suse.com/"},"references":[{"category":"external","summary":"SUSE ratings","url":"https://www.suse.com/support/security/rating/"},{"category":"self","summary":"URL of this CSAF notice","url":"https://ftp.suse.com/pub/projects/security/csaf/opensuse-su-2026_20361-1.json"},{"category":"self","summary":"SUSE Bug 1230469","url":"https://bugzilla.suse.com/1230469"},{"category":"self","summary":"SUSE Bug 1247410","url":"https://bugzilla.suse.com/1247410"},{"category":"self","summary":"SUSE CVE CVE-2024-22038 page","url":"https://www.suse.com/security/cve/CVE-2024-22038/"}],"title":"Security update for osc, obs-scm-bridge","tracking":{"current_release_date":"2026-03-12T20:54:40Z","generator":{"date":"2026-03-12T20:54:40Z","engine":{"name":"cve-database.git:bin/generate-csaf.pl","version":"1"}},"id":"openSUSE-SU-2026:20361-1","initial_release_date":"2026-03-12T20:54:40Z","revision_history":[{"date":"2026-03-12T20:54:40Z","number":"1","summary":"Current version"}],"status":"final","version":"1"}},"product_tree":{"branches":[{"branches":[{"branches":[{"category":"product_version","name":"obs-scm-bridge-0.7.4-bp160.1.1.noarch","product":{"name":"obs-scm-bridge-0.7.4-bp160.1.1.noarch","product_id":"obs-scm-bridge-0.7.4-bp160.1.1.noarch"}},{"category":"product_version","name":"osc-1.24.0-bp160.1.1.noarch","product":{"name":"osc-1.24.0-bp160.1.1.noarch","product_id":"osc-1.24.0-bp160.1.1.noarch"}}],"category":"architecture","name":"noarch"},{"branches":[{"category":"product_name","name":"openSUSE Leap 16.0","product":{"name":"openSUSE Leap 16.0","product_id":"openSUSE Leap 16.0"}}],"category":"product_family","name":"SUSE Linux Enterprise"}],"category":"vendor","name":"SUSE"}],"relationships":[{"category":"default_component_of","full_product_name":{"name":"obs-scm-bridge-0.7.4-bp160.1.1.noarch as component of openSUSE Leap 16.0","product_id":"openSUSE Leap 16.0:obs-scm-bridge-0.7.4-bp160.1.1.noarch"},"product_reference":"obs-scm-bridge-0.7.4-bp160.1.1.noarch","relates_to_product_reference":"openSUSE Leap 16.0"},{"category":"default_component_of","full_product_name":{"name":"osc-1.24.0-bp160.1.1.noarch as component of openSUSE Leap 16.0","product_id":"openSUSE Leap 16.0:osc-1.24.0-bp160.1.1.noarch"},"product_reference":"osc-1.24.0-bp160.1.1.noarch","relates_to_product_reference":"openSUSE Leap 16.0"}]},"vulnerabilities":[{"cve":"CVE-2024-22038","ids":[{"system_name":"SUSE CVE Page","text":"https://www.suse.com/security/cve/CVE-2024-22038"}],"notes":[{"category":"general","text":"Various problems in obs-scm-bridge allows attackers that create specially crafted git repositories to leak information of cause denial of service.","title":"CVE description"}],"product_status":{"recommended":["openSUSE Leap 16.0:obs-scm-bridge-0.7.4-bp160.1.1.noarch","openSUSE Leap 16.0:osc-1.24.0-bp160.1.1.noarch"]},"references":[{"category":"external","summary":"CVE-2024-22038","url":"https://www.suse.com/security/cve/CVE-2024-22038"},{"category":"external","summary":"SUSE Bug 1230469 for CVE-2024-22038","url":"https://bugzilla.suse.com/1230469"}],"remediations":[{"category":"vendor_fix","details":"To install this SUSE Security Update use the SUSE recommended installation methods like YaST online_update or \"zypper patch\".\n","product_ids":["openSUSE Leap 16.0:obs-scm-bridge-0.7.4-bp160.1.1.noarch","openSUSE Leap 16.0:osc-1.24.0-bp160.1.1.noarch"]}],"scores":[{"cvss_v3":{"baseScore":7.3,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:N/UI:R/S:U/C:L/I:H/A:H","version":"3.1"},"products":["openSUSE Leap 16.0:obs-scm-bridge-0.7.4-bp160.1.1.noarch","openSUSE Leap 16.0:osc-1.24.0-bp160.1.1.noarch"]}],"threats":[{"category":"impact","date":"2026-03-12T20:54:40Z","details":"important"}],"title":"CVE-2024-22038"}]}