You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@iceberg.apache.org by "kevinjqliu (via GitHub)" <gi...@apache.org> on 2026/03/24 23:13:16 UTC
[PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
kevinjqliu opened a new pull request, #15757:
URL: https://github.com/apache/iceberg/pull/15757
This adds a CI workflow that uses [zizmor](https://docs.zizmor.sh/) to detect unpinned third-party GitHub Actions in workflow files.
We've already moved all references to pinned commit hash in #15753
Violations will trigger this CI to fail in the future
### Problem
Actions referenced by mutable tag (e.g. `actions/checkout@v4`) can be silently replaced by a compromised or force-pushed tag, allowing arbitrary code execution inside CI. All `uses:` references should be pinned to a full commit SHA to make them immutable and auditable.
### Solution
Add a `zizmor.yml` workflow that:
- Triggers on PRs that modify `.github/workflows/**`
- Runs zizmor in offline mode to check for `unpinned-uses` findings
- Reports the file, line, and action for each violation
- Fails the check if any unpinned actions are found
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
Posted by "kevinjqliu (via GitHub)" <gi...@apache.org>.
kevinjqliu commented on PR #15757:
URL: https://github.com/apache/iceberg/pull/15757#issuecomment-4144946663
superseded by #15793
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
Posted by "stevenzwu (via GitHub)" <gi...@apache.org>.
stevenzwu commented on code in PR #15757:
URL: https://github.com/apache/iceberg/pull/15757#discussion_r2997774075
##########
.github/workflows/zizmor.yml:
##########
@@ -0,0 +1,68 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: "Zizmor Workflow Audit"
+on:
+ pull_request:
+ paths:
+ - '.github/workflows/**'
+
+permissions:
+ contents: read
+
+jobs:
+ zizmor:
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ - uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5
+ - name: Run zizmor audit
+ # Runs zizmor (https://docs.zizmor.sh/) in offline mode to detect
+ # unpinned third-party actions. Actions referenced by mutable tag
+ # (e.g. `actions/checkout@v4`) can be silently replaced by a
+ # compromised or force-pushed tag, allowing arbitrary code execution
+ # in CI. Pinning to a full commit SHA makes the reference immutable.
+ run: |
+ findings=$(uvx --from zizmor zizmor \
+ --offline \
+ --format json-v1 \
+ .github/workflows 2>/dev/null \
+ | jq -r '
+ [
+ .[]
+ | select(.ident == "unpinned-uses")
Review Comment:
should we include all items with high severity and high confidence?
```
"confidence": "High",
"severity": "High",
```
Or is `unpinned-uses` just the first step?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
Posted by "steveloughran (via GitHub)" <gi...@apache.org>.
steveloughran commented on PR #15757:
URL: https://github.com/apache/iceberg/pull/15757#issuecomment-4125407186
the fact zizmor found an unpinned reference is a successful test run: it shows it works
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
Posted by "RussellSpitzer (via GitHub)" <gi...@apache.org>.
RussellSpitzer commented on code in PR #15757:
URL: https://github.com/apache/iceberg/pull/15757#discussion_r2996919019
##########
.github/workflows/zizmor.yml:
##########
@@ -0,0 +1,68 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: "Zizmor Workflow Audit"
+on:
+ pull_request:
+ paths:
+ - '.github/workflows/**'
+
+permissions:
+ contents: read
+
+jobs:
+ zizmor:
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ - uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5
+ - name: Run zizmor audit
+ # Runs zizmor (https://docs.zizmor.sh/) in offline mode to detect
+ # unpinned third-party actions. Actions referenced by mutable tag
+ # (e.g. `actions/checkout@v4`) can be silently replaced by a
+ # compromised or force-pushed tag, allowing arbitrary code execution
+ # in CI. Pinning to a full commit SHA makes the reference immutable.
+ run: |
+ findings=$(uvx --from zizmor zizmor \
Review Comment:
why don't we want to do the "security-events" write ?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
Posted by "kevinjqliu (via GitHub)" <gi...@apache.org>.
kevinjqliu commented on code in PR #15757:
URL: https://github.com/apache/iceberg/pull/15757#discussion_r2996992223
##########
.github/workflows/zizmor.yml:
##########
@@ -0,0 +1,68 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: "Zizmor Workflow Audit"
+on:
+ pull_request:
+ paths:
+ - '.github/workflows/**'
+
+permissions:
+ contents: read
+
+jobs:
+ zizmor:
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ - uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5
+ - name: Run zizmor audit
+ # Runs zizmor (https://docs.zizmor.sh/) in offline mode to detect
+ # unpinned third-party actions. Actions referenced by mutable tag
+ # (e.g. `actions/checkout@v4`) can be silently replaced by a
+ # compromised or force-pushed tag, allowing arbitrary code execution
+ # in CI. Pinning to a full commit SHA makes the reference immutable.
+ run: |
+ findings=$(uvx --from zizmor zizmor \
Review Comment:
we will eventually. This is just gate regression for 1 specific issue (`unpinned-uses`)
we already fixed it in https://github.com/apache/iceberg/pull/15707
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
Posted by "huaxingao (via GitHub)" <gi...@apache.org>.
huaxingao commented on code in PR #15757:
URL: https://github.com/apache/iceberg/pull/15757#discussion_r2997747425
##########
.github/workflows/zizmor.yml:
##########
@@ -0,0 +1,68 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: "Zizmor Workflow Audit"
+on:
+ pull_request:
+ paths:
+ - '.github/workflows/**'
+
+permissions:
+ contents: read
+
+jobs:
+ zizmor:
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ - uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5
+ - name: Run zizmor audit
+ # Runs zizmor (https://docs.zizmor.sh/) in offline mode to detect
+ # unpinned third-party actions. Actions referenced by mutable tag
+ # (e.g. `actions/checkout@v4`) can be silently replaced by a
+ # compromised or force-pushed tag, allowing arbitrary code execution
+ # in CI. Pinning to a full commit SHA makes the reference immutable.
+ run: |
+ findings=$(uvx --from zizmor zizmor \
+ --offline \
+ --format json-v1 \
+ .github/workflows 2>/dev/null \
Review Comment:
Nit: `2>/dev/null` hides errors, if zizmor fails to run, `$findings` will be empty and the check will silently pass. Maybe remove it or check the exit code first?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
Posted by "kevinjqliu (via GitHub)" <gi...@apache.org>.
kevinjqliu commented on PR #15757:
URL: https://github.com/apache/iceberg/pull/15757#issuecomment-4123806984
once we burn down the warnings from zizmor, we can enforce everything using the zizmor github action (https://github.com/marketplace/actions/zizmor-action)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
Posted by "kevinjqliu (via GitHub)" <gi...@apache.org>.
kevinjqliu closed pull request #15757: CI: Add zizmor workflow audit for unpinned actions
URL: https://github.com/apache/iceberg/pull/15757
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org
Re: [PR] CI: Add zizmor workflow audit for unpinned actions [iceberg]
Posted by "kevinjqliu (via GitHub)" <gi...@apache.org>.
kevinjqliu commented on code in PR #15757:
URL: https://github.com/apache/iceberg/pull/15757#discussion_r2985291914
##########
.github/workflows/zizmor.yml:
##########
@@ -0,0 +1,68 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+name: "Zizmor Workflow Audit"
+on:
+ pull_request:
+ paths:
+ - '.github/workflows/**'
+
+permissions:
+ contents: read
+
+jobs:
+ zizmor:
+ runs-on: ubuntu-24.04
+ steps:
+ - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6
+ - uses: astral-sh/setup-uv@0c5e2b8115b80b4c7c5ddf6ffdd634974642d182 # v5
+ - name: Run zizmor audit
+ # Runs zizmor (https://docs.zizmor.sh/) in offline mode to detect
+ # unpinned third-party actions. Actions referenced by mutable tag
+ # (e.g. `actions/checkout@v4`) can be silently replaced by a
+ # compromised or force-pushed tag, allowing arbitrary code execution
+ # in CI. Pinning to a full commit SHA makes the reference immutable.
+ run: |
+ findings=$(uvx --from zizmor zizmor \
Review Comment:
This isn't the prettiest, but it does isolate the unpinned-use error
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscribe@iceberg.apache.org
For additional commands, e-mail: issues-help@iceberg.apache.org