Ensure ANSIBLE_NO_LOG is respected (CVE-2024-0690) (#82565)
This commit is contained in:
2
changelogs/fragments/cve-2024-0690.yml
Normal file
2
changelogs/fragments/cve-2024-0690.yml
Normal file
@ -0,0 +1,2 @@
|
||||
security_fixes:
|
||||
- ANSIBLE_NO_LOG - Address issue where ANSIBLE_NO_LOG was ignored (CVE-2024-0690)
|
||||
@ -730,7 +730,7 @@ class Base(FieldAttributeBase):
|
||||
|
||||
# flags and misc. settings
|
||||
environment = FieldAttribute(isa='list', extend=True, prepend=True)
|
||||
no_log = FieldAttribute(isa='bool')
|
||||
no_log = FieldAttribute(isa='bool', default=C.DEFAULT_NO_LOG)
|
||||
run_once = FieldAttribute(isa='bool')
|
||||
ignore_errors = FieldAttribute(isa='bool')
|
||||
ignore_unreachable = FieldAttribute(isa='bool')
|
||||
|
||||
@ -316,10 +316,6 @@ class PlayContext(Base):
|
||||
display.warning('The "%s" connection plugin has an improperly configured remote target value, '
|
||||
'forcing "inventory_hostname" templated value instead of the string' % new_info.connection)
|
||||
|
||||
# set no_log to default if it was not previously set
|
||||
if new_info.no_log is None:
|
||||
new_info.no_log = C.DEFAULT_NO_LOG
|
||||
|
||||
if task.check_mode is not None:
|
||||
new_info.check_mode = task.check_mode
|
||||
|
||||
|
||||
13
test/integration/targets/no_log/no_log_config.yml
Normal file
13
test/integration/targets/no_log/no_log_config.yml
Normal file
@ -0,0 +1,13 @@
|
||||
- hosts: testhost
|
||||
gather_facts: false
|
||||
tasks:
|
||||
- debug:
|
||||
no_log: true
|
||||
|
||||
- debug:
|
||||
no_log: false
|
||||
|
||||
- debug:
|
||||
|
||||
- debug:
|
||||
loop: '{{ range(3) }}'
|
||||
@ -19,3 +19,8 @@ set -eux
|
||||
|
||||
# test invalid data passed to a suboption
|
||||
[ "$(ansible-playbook no_log_suboptions_invalid.yml -i ../../inventory -vvvvv "$@" | grep -Ec '(SUPREME|IDIOM|MOCKUP|EDUCATED|FOOTREST|CRAFTY|FELINE|CRYSTAL|EXPECTANT|AGROUND|GOLIATH|FREEFALL)')" = "0" ]
|
||||
|
||||
# test variations on ANSIBLE_NO_LOG
|
||||
[ "$(ansible-playbook no_log_config.yml -i ../../inventory -vvvvv "$@" | grep -Ec 'the output has been hidden')" = "1" ]
|
||||
[ "$(ANSIBLE_NO_LOG=0 ansible-playbook no_log_config.yml -i ../../inventory -vvvvv "$@" | grep -Ec 'the output has been hidden')" = "1" ]
|
||||
[ "$(ANSIBLE_NO_LOG=1 ansible-playbook no_log_config.yml -i ../../inventory -vvvvv "$@" | grep -Ec 'the output has been hidden')" = "6" ]
|
||||
|
||||
Reference in New Issue
Block a user