Skip to content

Commit 12ecda5

Browse files
Merge branch 'release-1.45.18'
* release-1.45.18: Bumping version to 1.45.18 Update changelog based on model updates Fix parent reference warning (#10362) Update restore-snapshot-from-recycle-bin.rst
2 parents 806d2c1 + 7d59817 commit 12ecda5

9 files changed

Lines changed: 103 additions & 7 deletions

File tree

.changes/1.45.18.json

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
[
2+
{
3+
"category": "``bedrock``",
4+
"description": "Automated Reasoning checks - Added two build workflows for policies. Iterative Refine Policy uses AI to update policy definitions based on test results and feedback. Resolve Policy Ambiguities consolidates ambiguous variables in Automated Reasoning policies, a common source of ambiguous validation.",
5+
"type": "api-change"
6+
},
7+
{
8+
"category": "``bedrock-agentcore-control``",
9+
"description": "Reference your own AWS Secrets Manager secrets when configuring credential providers, giving you control over encryption, rotation, and access policies instead of using service-managed secrets.",
10+
"type": "api-change"
11+
},
12+
{
13+
"category": "``groundstation``",
14+
"description": "Adds support for Alpha-5 satellite number encoding in the Two-Line Element ephemeris format.",
15+
"type": "api-change"
16+
},
17+
{
18+
"category": "``omics``",
19+
"description": "Add engineSettings to StartRun and GetRun. Add profiles and profileParameterTemplates to GetWorkflow and GetWorkflowVersion.",
20+
"type": "api-change"
21+
},
22+
{
23+
"category": "``quicksight``",
24+
"description": "Adds support for creating, updating, describing, listing, and deleting an OAuthClientApplication resource, a new quicksight resource that allows customers to store OAuth configurations to connect to their databases via 3 Legged OAuth.",
25+
"type": "api-change"
26+
},
27+
{
28+
"category": "``rds-data``",
29+
"description": "RDS Data API arrays (longValues, doubleValues, stringValues, booleanValues) in ExecuteStatement responses now correctly support null elements. Runtime change for JS v3 and .NET. Compile-time change for C plus plus, .NET, Kotlin, Rust. No impact for Java, Python, Ruby, PHP, Go.",
30+
"type": "api-change"
31+
},
32+
{
33+
"category": "``route53resolver``",
34+
"description": "Added BatchCreateFirewallRule, BatchUpdateFirewallRule, BatchDeleteFirewallRule, and ListFirewallRuleTypes APIs. Added FirewallRuleType support to Firewall Rule APIs.",
35+
"type": "api-change"
36+
},
37+
{
38+
"category": "``sesv2``",
39+
"description": "This release introduces support for Tenant Suppression Lists",
40+
"type": "api-change"
41+
},
42+
{
43+
"category": "s3",
44+
"description": "Fix false negative in parent-directory escape detection that allowed keys like ``/../foo`` to bypass warning during downloads",
45+
"type": "bugfix"
46+
}
47+
]

CHANGELOG.rst

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22
CHANGELOG
33
=========
44

5+
1.45.18
6+
=======
7+
8+
* api-change:``bedrock``: Automated Reasoning checks - Added two build workflows for policies. Iterative Refine Policy uses AI to update policy definitions based on test results and feedback. Resolve Policy Ambiguities consolidates ambiguous variables in Automated Reasoning policies, a common source of ambiguous validation.
9+
* api-change:``bedrock-agentcore-control``: Reference your own AWS Secrets Manager secrets when configuring credential providers, giving you control over encryption, rotation, and access policies instead of using service-managed secrets.
10+
* api-change:``groundstation``: Adds support for Alpha-5 satellite number encoding in the Two-Line Element ephemeris format.
11+
* api-change:``omics``: Add engineSettings to StartRun and GetRun. Add profiles and profileParameterTemplates to GetWorkflow and GetWorkflowVersion.
12+
* api-change:``quicksight``: Adds support for creating, updating, describing, listing, and deleting an OAuthClientApplication resource, a new quicksight resource that allows customers to store OAuth configurations to connect to their databases via 3 Legged OAuth.
13+
* api-change:``rds-data``: RDS Data API arrays (longValues, doubleValues, stringValues, booleanValues) in ExecuteStatement responses now correctly support null elements. Runtime change for JS v3 and .NET. Compile-time change for C plus plus, .NET, Kotlin, Rust. No impact for Java, Python, Ruby, PHP, Go.
14+
* api-change:``route53resolver``: Added BatchCreateFirewallRule, BatchUpdateFirewallRule, BatchDeleteFirewallRule, and ListFirewallRuleTypes APIs. Added FirewallRuleType support to Firewall Rule APIs.
15+
* api-change:``sesv2``: This release introduces support for Tenant Suppression Lists
16+
* bugfix:s3: Fix false negative in parent-directory escape detection that allowed keys like ``/../foo`` to bypass warning during downloads
17+
18+
519
1.45.17
620
=======
721

awscli/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@
1818

1919
import os
2020

21-
__version__ = '1.45.17'
21+
__version__ = '1.45.18'
2222

2323
#
2424
# Get our data path to be added to botocore's search path

awscli/customizations/s3/s3handler.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -322,8 +322,10 @@ def _warn_parent_reference(self, fileinfo):
322322
# normpath() will use the OS path separator so we
323323
# need to take that into account when checking for a parent prefix.
324324
parent_prefix = '..' + os.path.sep
325-
escapes_cwd = os.path.normpath(fileinfo.compare_key).startswith(
326-
parent_prefix)
325+
# Anchor compare_key against '.' (the destination directory root)
326+
# to avoid false negatives on paths like '/../foo'
327+
normalized = os.path.normpath('.' + os.path.sep + fileinfo.compare_key)
328+
escapes_cwd = normalized.startswith(parent_prefix)
327329
if escapes_cwd:
328330
warning = create_warning(
329331
fileinfo.compare_key, "File references a parent directory.")

awscli/examples/ec2/restore-snapshot-from-recycle-bin.rst

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,18 @@ The following ``restore-snapshot-from-recycle-bin`` example restores a snapshot
55
aws ec2 restore-snapshot-from-recycle-bin \
66
--snapshot-id snap-01234567890abcdef
77

8-
This command produces no output.
8+
Output::
9+
10+
{
11+
"SnapshotId": "snap-01234567890abcdef",
12+
"Description": "Monthly data backup snapshot",
13+
"Encrypted": false,
14+
"OwnerId": "111122223333",
15+
"Progress": "99%",
16+
"StartTime": "2021-12-01T13:00:00.000000+00:00",
17+
"State": "recovering",
18+
"VolumeId": "vol-ffffffff",
19+
"VolumeSize": 30
20+
}
921

1022
For more information about Recycle Bin, see `Recover deleted snapshots from the Recycle Bin <https://docs.aws.amazon.com/ebs/latest/userguide/recycle-bin-working-with-snaps.html>`__ in the *Amazon EBS User Guide*.

doc/source/conf.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@
5252
# The short X.Y version.
5353
version = '1.45.'
5454
# The full version, including alpha/beta/rc tags.
55-
release = '1.45.17'
55+
release = '1.45.18'
5656

5757
# The language for content autogenerated by Sphinx. Refer to documentation
5858
# for a list of supported languages.

setup.cfg

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ universal = 0
33

44
[metadata]
55
requires_dist =
6-
botocore==1.43.17
6+
botocore==1.43.18
77
docutils>=0.18.1,<=0.19
88
s3transfer>=0.18.0,<0.19.0
99
PyYAML>=3.10,<6.1

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ def find_version(*file_paths):
2424

2525

2626
install_requires = [
27-
'botocore==1.43.17',
27+
'botocore==1.43.18',
2828
'docutils>=0.18.1,<=0.19',
2929
's3transfer>=0.18.0,<0.19.0',
3030
'PyYAML>=3.10,<6.1',

tests/unit/customizations/s3/test_s3handler.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -561,6 +561,27 @@ def test_allow_double_dots_that_dont_escape_cwd(self):
561561
future = self.transfer_request_submitter.submit(fileinfo)
562562
self.assertIsInstance(self.result_queue.get(), DryRunResult)
563563

564+
def test_warn_and_ignore_on_leading_slash_parent_reference(self):
565+
fileinfo = self.create_file_info('/../foo.txt')
566+
future = self.transfer_request_submitter.submit(fileinfo)
567+
warning_result = self.result_queue.get()
568+
self.assertIsInstance(warning_result, WarningResult)
569+
self.assert_no_downloads_happened()
570+
571+
def test_warn_and_ignore_on_leading_slash_stacked_parent_reference(self):
572+
fileinfo = self.create_file_info('/../../../foo/bar.txt')
573+
future = self.transfer_request_submitter.submit(fileinfo)
574+
warning_result = self.result_queue.get()
575+
self.assertIsInstance(warning_result, WarningResult)
576+
self.assert_no_downloads_happened()
577+
578+
def test_warn_and_ignore_on_double_leading_slash_parent_reference(self):
579+
fileinfo = self.create_file_info('//../foo')
580+
future = self.transfer_request_submitter.submit(fileinfo)
581+
warning_result = self.result_queue.get()
582+
self.assertIsInstance(warning_result, WarningResult)
583+
self.assert_no_downloads_happened()
584+
564585
def test_dry_run(self):
565586
self.cli_params['dryrun'] = True
566587
self.transfer_request_submitter = DownloadRequestSubmitter(

0 commit comments

Comments
 (0)