diff --git a/moto/secretsmanager/models.py b/moto/secretsmanager/models.py
--- a/moto/secretsmanager/models.py
+++ b/moto/secretsmanager/models.py
@@ -352,6 +352,7 @@ def update_secret(
         secret_binary: Optional[str] = None,
         client_request_token: Optional[str] = None,
         kms_key_id: Optional[str] = None,
+        description: Optional[str] = None,
     ) -> str:
 
         # error if secret does not exist
@@ -366,7 +367,7 @@ def update_secret(
 
         secret = self.secrets[secret_id]
         tags = secret.tags
-        description = secret.description
+        description = description or secret.description
 
         secret = self._add_secret(
             secret_id,
diff --git a/moto/secretsmanager/responses.py b/moto/secretsmanager/responses.py
--- a/moto/secretsmanager/responses.py
+++ b/moto/secretsmanager/responses.py
@@ -71,6 +71,7 @@ def update_secret(self) -> str:
         secret_id = self._get_param("SecretId")
         secret_string = self._get_param("SecretString")
         secret_binary = self._get_param("SecretBinary")
+        description = self._get_param("Description")
         client_request_token = self._get_param("ClientRequestToken")
         kms_key_id = self._get_param("KmsKeyId", if_none=None)
         return self.backend.update_secret(
@@ -79,6 +80,7 @@ def update_secret(self) -> str:
             secret_binary=secret_binary,
             client_request_token=client_request_token,
             kms_key_id=kms_key_id,
+            description=description,
         )
 
     def get_random_password(self) -> str:

diff --git a/tests/test_secretsmanager/test_secretsmanager.py b/tests/test_secretsmanager/test_secretsmanager.py
--- a/tests/test_secretsmanager/test_secretsmanager.py
+++ b/tests/test_secretsmanager/test_secretsmanager.py
@@ -1346,7 +1346,11 @@ def test_update_secret(pass_arn):
     secret = conn.get_secret_value(SecretId=secret_id)
     assert secret["SecretString"] == "foosecret"
 
-    updated_secret = conn.update_secret(SecretId=secret_id, SecretString="barsecret")
+    updated_secret = conn.update_secret(
+        SecretId=secret_id,
+        SecretString="barsecret",
+        Description="new desc",
+    )
 
     assert updated_secret["ARN"]
     assert updated_secret["Name"] == "test-secret"
@@ -1356,6 +1360,8 @@ def test_update_secret(pass_arn):
     assert secret["SecretString"] == "barsecret"
     assert created_secret["VersionId"] != updated_secret["VersionId"]
 
+    assert conn.describe_secret(SecretId=secret_id)["Description"] == "new desc"
+
 
 @mock_secretsmanager
 @pytest.mark.parametrize("pass_arn", [True, False])

update_secret doesn't update description
The `update_secret` call for secretsmanager has a `description` field.
Without moto, you can update the description.
With moto, the description is not updated.

The implementation in [responses.py](https://github.com/getmoto/moto/blob/master/moto/secretsmanager/responses.py#L70-L82) and [models.py](https://github.com/getmoto/moto/blob/master/moto/secretsmanager/models.py#L348C3-L355) does not appear to mention description at all.

Steps to reproduce:

```
from random import randrange

from moto import mock_secretsmanager
import boto3


mock_secretsmanager().start()

client = boto3.client('secretsmanager')

secret_name = f'test-moto-{randrange(100)}'
secret_string = 'secretthing'

response = client.create_secret(
    Name=secret_name,
    Description='first description',
    SecretString=secret_string,
)

client.update_secret(
    SecretId=secret_name,
    Description='second description',
)

response = client.describe_secret(
    SecretId=secret_name
)
print(f"Description is {response['Description']}")
assert response['Description'] == 'second description'

client.delete_secret(
    SecretId=secret_name,
    ForceDeleteWithoutRecovery=True
)
```

If you run as is (with moto), the assertion fails, because the description is still "first description".

If you comment out `mock_secretsmanager().start()`, the assertion passes. The description was updated.

tests/test_secretsmanager/test_secretsmanager.py::test_update_secret[True] tests/test_secretsmanager/test_secretsmanager.py::test_update_secret[False]
tests/test_secretsmanager/test_secretsmanager.py::test_get_secret_that_has_no_value tests/test_secretsmanager/test_secretsmanager.py::test_get_secret_value_by_arn tests/test_secretsmanager/test_secretsmanager.py::test_update_secret_with_KmsKeyId tests/test_secretsmanager/test_secretsmanager.py::test_get_secret_that_does_not_exist tests/test_secretsmanager/test_secretsmanager.py::test_update_secret_updates_last_changed_dates[True] tests/test_secretsmanager/test_secretsmanager.py::test_get_random_exclude_lowercase tests/test_secretsmanager/test_secretsmanager.py::test_describe_secret_with_arn[test-secret] tests/test_secretsmanager/test_secretsmanager.py::test_put_secret_value_puts_new_secret tests/test_secretsmanager/test_secretsmanager.py::test_tag_resource[False] tests/test_secretsmanager/test_secretsmanager.py::test_update_secret_with_client_request_token tests/test_secretsmanager/test_secretsmanager.py::test_get_secret_value_that_is_marked_deleted tests/test_secretsmanager/test_secretsmanager.py::test_untag_resource[False] tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_client_request_token_too_short tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret tests/test_secretsmanager/test_secretsmanager.py::test_cancel_rotate_secret_before_enable tests/test_secretsmanager/test_secretsmanager.py::test_get_secret_value tests/test_secretsmanager/test_secretsmanager.py::test_update_secret_which_does_not_exit tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_force tests/test_secretsmanager/test_secretsmanager.py::test_cancel_rotate_secret_with_invalid_secret_id tests/test_secretsmanager/test_secretsmanager.py::test_get_random_password_default_requirements tests/test_secretsmanager/test_secretsmanager.py::test_describe_secret tests/test_secretsmanager/test_secretsmanager.py::test_after_put_secret_value_version_stages_can_get_current_with_custom_version_stage tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_force_no_such_secret_with_invalid_recovery_window tests/test_secretsmanager/test_secretsmanager.py::test_get_secret_version_that_does_not_exist tests/test_secretsmanager/test_secretsmanager.py::test_create_secret_with_client_request_token tests/test_secretsmanager/test_secretsmanager.py::test_get_secret_version_stage_mismatch tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret tests/test_secretsmanager/test_secretsmanager.py::test_create_and_put_secret_binary_value_puts_new_secret tests/test_secretsmanager/test_secretsmanager.py::test_create_secret_with_tags_and_description tests/test_secretsmanager/test_secretsmanager.py::test_get_random_exclude_punctuation tests/test_secretsmanager/test_secretsmanager.py::test_update_secret_updates_last_changed_dates[False] tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_enable_rotation tests/test_secretsmanager/test_secretsmanager.py::test_get_random_require_each_included_type tests/test_secretsmanager/test_secretsmanager.py::test_can_list_secret_version_ids tests/test_secretsmanager/test_secretsmanager.py::test_restore_secret tests/test_secretsmanager/test_secretsmanager.py::test_get_random_exclude_numbers tests/test_secretsmanager/test_secretsmanager.py::test_create_secret_with_description tests/test_secretsmanager/test_secretsmanager.py::test_get_random_too_short_password tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_fails_with_both_force_delete_flag_and_recovery_window_flag tests/test_secretsmanager/test_secretsmanager.py::test_describe_secret_with_arn[testsecret] tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_force_no_such_secret tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_that_does_not_match tests/test_secretsmanager/test_secretsmanager.py::test_put_secret_value_version_stages_response tests/test_secretsmanager/test_secretsmanager.py::test_get_random_exclude_characters_and_symbols tests/test_secretsmanager/test_secretsmanager.py::test_secret_versions_to_stages_attribute_discrepancy tests/test_secretsmanager/test_secretsmanager.py::test_get_random_include_space_true tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_that_does_not_exist tests/test_secretsmanager/test_secretsmanager.py::test_cancel_rotate_secret_after_delete tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_that_does_not_exist tests/test_secretsmanager/test_secretsmanager.py::test_create_secret_with_tags tests/test_secretsmanager/test_secretsmanager.py::test_update_secret_marked_as_deleted_after_restoring tests/test_secretsmanager/test_secretsmanager.py::test_untag_resource[True] tests/test_secretsmanager/test_secretsmanager.py::test_restore_secret_that_is_not_deleted tests/test_secretsmanager/test_secretsmanager.py::test_put_secret_value_can_get_first_version_if_put_twice tests/test_secretsmanager/test_secretsmanager.py::test_after_put_secret_value_version_stages_pending_can_get_current tests/test_secretsmanager/test_secretsmanager.py::test_update_secret_with_tags_and_description tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_client_request_token_too_long tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_rotation_period_zero tests/test_secretsmanager/test_secretsmanager.py::test_get_secret_value_binary tests/test_secretsmanager/test_secretsmanager.py::test_tag_resource[True] tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_force_with_arn tests/test_secretsmanager/test_secretsmanager.py::test_describe_secret_that_does_not_match tests/test_secretsmanager/test_secretsmanager.py::test_create_secret tests/test_secretsmanager/test_secretsmanager.py::test_get_secret_that_does_not_match tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_recovery_window_too_short tests/test_secretsmanager/test_secretsmanager.py::test_put_secret_binary_requires_either_string_or_binary tests/test_secretsmanager/test_secretsmanager.py::test_put_secret_value_version_stages_pending_response tests/test_secretsmanager/test_secretsmanager.py::test_update_secret_marked_as_deleted tests/test_secretsmanager/test_secretsmanager.py::test_describe_secret_that_does_not_exist tests/test_secretsmanager/test_secretsmanager.py::test_get_random_password_default_length tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_that_is_marked_deleted tests/test_secretsmanager/test_secretsmanager.py::test_put_secret_binary_value_puts_new_secret tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_by_arn tests/test_secretsmanager/test_secretsmanager.py::test_get_random_exclude_uppercase tests/test_secretsmanager/test_secretsmanager.py::test_secret_arn tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_that_is_marked_deleted tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_rotation_lambda_arn_too_long tests/test_secretsmanager/test_secretsmanager.py::test_get_random_include_space_false tests/test_secretsmanager/test_secretsmanager.py::test_put_secret_value_on_non_existing_secret tests/test_secretsmanager/test_secretsmanager.py::test_describe_secret_with_KmsKeyId tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_rotation_period_too_long tests/test_secretsmanager/test_secretsmanager.py::test_put_secret_value_versions_differ_if_same_secret_put_twice tests/test_secretsmanager/test_secretsmanager.py::test_after_put_secret_value_version_stages_can_get_current tests/test_secretsmanager/test_secretsmanager.py::test_get_random_password_custom_length tests/test_secretsmanager/test_secretsmanager.py::test_rotate_secret_without_secretstring tests/test_secretsmanager/test_secretsmanager.py::test_restore_secret_that_does_not_exist tests/test_secretsmanager/test_secretsmanager.py::test_put_secret_value_maintains_description_and_tags tests/test_secretsmanager/test_secretsmanager.py::test_delete_secret_recovery_window_too_long tests/test_secretsmanager/test_secretsmanager.py::test_get_random_too_long_password