Skip to content

fix(cli): fix allow_admin allows non-127.0.0.0/24 to access admin api with empty admin_key#9146

Merged
juststillthinking merged 4 commits into
apache:masterfrom
An-DJ:fix-allow-admin-bug
Mar 29, 2023
Merged

fix(cli): fix allow_admin allows non-127.0.0.0/24 to access admin api with empty admin_key#9146
juststillthinking merged 4 commits into
apache:masterfrom
An-DJ:fix-allow-admin-bug

Conversation

@An-DJ

@An-DJ An-DJ commented Mar 22, 2023

Copy link
Copy Markdown
Contributor

Description

Fixes #9055

Checklist

  • I have explained the need for this PR and the problem it solves
  • I have explained the changes or the new features added to this PR
  • I have added tests corresponding to this change
  • I have updated the documentation to reflect this change
  • I have verified that this change is backward compatible (If not, please discuss on the APISIX mailing list first)

@An-DJ An-DJ changed the title fix(cli): fix allow_admin bug (#9055) fix(cli): fix allow_admin allows non-127.0.0.0/24 to access admin api with empty admin_key Mar 22, 2023

@moonming moonming left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

do we need to update doc for this?

moonming
moonming previously approved these changes Mar 22, 2023
Comment thread apisix/cli/ops.lua Outdated
end
end
if yaml_conf.apisix.enable_admin and allow_admin
and table.getn(allow_admin) == 1 and allow_admin[1] == "127.0.0.0/24" then

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

table.getn is deprecated, use # instead

Comment thread t/cli/test_admin.sh Outdated

# missing admin key, only allow 127.0.0.0/24 to access admin api

git checkout conf/config.yaml

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need to checkout the config and then override it

Comment thread t/cli/test_admin.sh Outdated
make init > output.log 2>&1 | true

grep -E "ERROR: missing valid Admin API token." output.log > /dev/null
if [ ! $? -ne 0 ]; then

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The condition here is incorrect?

Comment thread t/cli/test_admin.sh Outdated
make init > output.log 2>&1 | true

grep -E "ERROR: missing valid Admin API token." output.log > /dev/null
if [ $? -eq 0 ]; then

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The condition here is still incorrect, please think again what is going to check in this test.

@juststillthinking juststillthinking Mar 24, 2023

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have checked with @spacewander, the condition is correct, but the shell syntax is incorrect

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@monkeyDluffy6017
Yes, you are right. Sorry for the wrong suggestion.

@juststillthinking
juststillthinking merged commit 01f0498 into apache:master Mar 29, 2023
hongbinhsu added a commit to fitphp/apix that referenced this pull request Apr 11, 2023
* upstream/master: (25 commits)
  fix: upgrade lua-resty-ldap to 0.2.2 (apache#9254)
  feat(cli): support bypassing Admin API Auth by configuration (apache#9147)
  fix(ci): write version into xds first (apache#9274)
  fix: skip warning log when apisix.data_encryption.enable is false (apache#9057)
  docs: add-api7-information (apache#9260)
  docs: Fixed typo (apache#9244)
  docs: clarify what is client.ca in client-to-apisix-mtls.md (apache#9221)
  docs: Corrected typos and grammatical errors (apache#9216)
  docs: updated ssl sni parameter requirement in admin-api.md (apache#9176)
  fix: check upstream reference in traffic-split plugin when delete upstream (apache#9044)
  docs: Update proxy-rewrite headers.add docs (apache#9220)
  feat: suppot header injection for fault-injection plugin (apache#9039)
  fix: upgrade lua-resty-etcd to 1.10.4 (apache#9235)
  docs: fix incorrect semantic.yml link (apache#9231)
  feat: Upstream status report (apache#9151)
  fix: host_hdr should not be false (apache#9150)
  docs: remove APISIX base instruction (apache#9117)
  fix(cli): prevent non-`127.0.0.0/24` to access admin api with empty admin_key (apache#9146)
  docs: fix 404 link (apache#9160)
  fix(cors): consider using `allow_origins_by_regex` only when it is not `nil` (apache#9028)
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

bug: If allow_admin contains 127.0.0.0/24, requests from other ips without adminKey are allowed by default

6 participants