Hello everyone,
The following versions of Totara Learn have now been released:
- Release 14.4
- Release 13.12
- Release 12.35
- Release 11.44
- Release 10.48
- Release 9.57
- Release 2.9.58
- Release 2.7.64
- Release 2.6.81
- Release 2.5.85
- Release 2.4.80
- Release 2.2.81
These versions do contain security fixes, and for this reason we strongly recommend upgrade.
Each release also includes bug fixes and improvements.
A big thanks to the following people for their contributions to this release:
- Michael Geering at Kineo UK - TL-32157
- Mihail Geshoski at Moodle - TL-31884
- Stewart Fulton at Kineo Pacific - TL-31762
Kind regards
Riana Rossouw
Release 14.4 (22nd September 2021):
Important: TL-32183 Fixed an issue with user profile fields not being imported in HR import when using field mapping This is an issue with user profile fields being imported via HR Import and only effects sites where the profile fields are using field mapping in the import configuration. If the user element configuration is using 'Empty fields erase existing data' this may result in existing profile field data being deleted. Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. TL-31887 Fixed potential blind Server-side request forgery (SSRF) against cURL blocked hosts via redirect All cURL redirect requests are now performed at the PHP level instead of relying on native cURL functionality to prevent blind Server-side request forgery (SSRF) TL-32429 Removed ability of site administrators to read arbitrary files via TeX preamble Previously, if all of the relevant TeX packages were installed and configured, a site administrator could read arbitrary files readable by the HTTP server system account via TeX, preamble. This included reading the config.php file and recovering the database credentials, listing system accounts and gaining access to user-uploaded content which posed a risk to shared hosting environments. TL-32430 Fixed a PHP type juggling vulnerability in external DB authentication Prior to this fix, a PHP type juggling vulnerability caused by loosely typed comparison could result in authentication bypass for users with password hash starting with "0e" on sites using the "External database" authentication plugin. Performance improvements: TL-30416 Improved the performance of IE11 devtools by moving CSS Variable rules onto a dedicated root DOM Node TL-31570 Delegated the re-grading of final grades of enrolled users within courses when adding a new course module. Prior to this patch, when a course had a large number of enrolled users and associated grade records, it would take a long time to add a course module that has grading enabled. This was due to the re-grading of final grades occurring immediately when a new course module was added. With this patch, a new adhoc task is introduced which defers the re-grading functionality into cron. The re-grading task will be deferred to cron, every time when a new course module (activity) that enable grading functionality was added to the course. A course creator, or site administrator will be able to see the notification banner when viewing the course that has the re-grading cron task pending. When the cron runs and all the grade records get processed, the notification banner will not appear again. TL-31762 Improved the performance of the totara_icon_url_and_alt function This function is used, amongst other places, for the display of 'Multi select' course custom fields. This change will improve the performance of report builder where these fields have been used. TL-31863 Improved the performance of session's room selection dialog Improvements: TL-29566 Added evidence type custom fields to evidence reports It is now possible to view and export custom field data on evidence reports. TL-30099 Improved accessibility of block show/hide buttons TL-30101 Improved accessibility of mobile view main navigation TL-30102 Improved accessibility of the action menus when expanded/collapsed TL-30103 Improved accessibility of close button in yui dialogs TL-30173 Improved accessibility of managing selected tiles in content marketplace explorer TL-30177 Improved accessibility of close button in content marketplace cards TL-30279 Added the 'aria-sort' attribute to table headers created via tablelib TL-31162 Added signature to verify that the MS Teams gateway registration request is genuinely from Totara Learn site. TL-31403 Created a 'program assigned' column for the deprecated 'mandatory' column in the learning plans (program) report source Investigation showed that the 'Mandatory' column is only an indication whether the user is still assigned to a program that he previously completed. This column has now been deprecated and a replacement column 'program assigned' created to reflect the correct meaning. TL-31438 Created accessible HTML version of certificate activity PDF In the certificate course module a user can now access a HTML version of the certificate alongside the existing PDF version. This is to provide an accessible version of the certificate as the PDF is not currently accessible. If the certificate is sent via email to the user the user will be able to access the HTML version from the email via a link. TL-31447 Added CLI script for changing program start and completion times The course completion editor allows administrators to change the date and time when an enrolled user completed a course to a date in the future. If this course is then later included in a program and the user assigned to the program, the resulting program completion record may indicate that the user started and completed the program in the future. As the program completion editor does not allow changes to the program start datetime administrators have no easy way to fully correct their data. The provided new script (totara/program/cli/update_program_completion_start_end.php) allows administrators to manually change program start and completion datetimes for assigned users. Note: this script allows administrators to update multiple program completion records in a single run. It should therefore be used with care. TL-31626 Added a hook to allow the overriding of component capability checks The totara\core\hook\component_access_check hook can now be used to override capability restrictions. This hook is not triggered automatically but needs to be executed wherever overriding of capability checks are allowed, e.g. in performance activity elements. TL-31682 ALLOWED_VALUES constraint in install.xml files allows uppercase letters TL-31764 Added the review type to the element type column in the performance activity report source for linked review questions TL-31793 Improved capability checks when selecting competencies in linked review elements When linking competency review elements to a performance element, the selecting participant was not allowed to view and select relevant competencies of the subject user without being granted additional capabilities. With this patch the selecting participant in a performance activity will be allowed to select competencies assigned to the subject user regardless of granted capabilities. TL-31800 Added more user fields for web service create and update functions \core_user_external::create_users() and \core_user_external::update_users() can now accept more user profile fields so user creation/update via web service can now be very similar to the edit profile page's functionality. The new fields that have been added are: * maildisplay * interests * url * skype * institution * department * phone1 * phone2 * address TL-31805 Improved accessibility of Ventura theme settings TL-31875 Upgraded postcss library to version 7.0.36 TL-31930 Removed admin buttons and headings on pages when viewed within MS Teams TL-31934 Added logout to configuration tab in MS Teams and hid unwanted headings and configuration options TL-32024 Removed required accessibility attribute from playlist description TL-32079 Added ability in the sidepanel comment box component to hide the like (thumbs up) button TL-32081 Removed attendee date conflict check when copying seminar event TL-32117 Added information about seminar specific requirements to the "Completion progress details" page TL-32146 Added Totara Comment placeholder group A group of placeholders has been implemented which can be used to add Totara Comment content to notifications. This is not yet in use, but is available to third-party developers. TL-32284 Reworded seminar notifications help text Previously the session booking and session date changed reminder recipients had the wording "All events(past, ...)". However, these notifications never go out for past events. This ticket removed the word "past"; the new wording makes it clear that notifications only go out for current and future events. Bug fixes: TL-31586 Fixed a race condition where the contribute resource card in a workspace would sometimes not be displayed TL-31603 Fixed the competency bar graph to have a label for each item associated, removing any empty labels at the beginning and the end TL-31639 Fixed triggering a user_suspended event when suspending a user during upload TL-31642 Fixed approving and declining seminar booking requests via task notification processing One way to approve or decline a seminar booking request is by using the task action buttons that are displayed when clicking the info-icon for a task notification in the task block. Prior to this patch, there was an error when using this functionality. TL-31652 Fixed the room link in seminar notifications not displaying the correct room status TL-31664 Ensured that the sub-menu is shown when viewing all of the 'Your Library' pages TL-31709 Fixed multiple event popovers showing at the same time TL-31722 Fixed theme field in totara_tui_themes_with_variables GraphQL query to use a consistent type TL-31726 Required checkbox profile fields are treated the same as other custom profile fields when a user logs in When a new required checkbox custom profile field was added, users who existed before and after the field was created were treated differently. Users who existed before the field would be required to check the checkbox when next logging in. Users created afterwards or who had the checkbox cleared by an admin would not be prompted on login. With this patch in place, a required unchecked checkbox is treated like the other custom profile fields and users will be prompted to check it when they log in. TL-31779 Fixed an issue where a user using a URL resource within MS Teams would result in the wrong theme being displayed TL-31795 Fixed an error where hidden courses were appearing in the "Recommended For You" block Prior to this patch if a course was marked as hidden but had self-enrollment enabled, it may have been recommended to users through the "Recommended for you" block. With this patch in place only courses that a user is allowed to see and enrol in will be recommended. TL-31802 Fixed use of incorrect caret direction icon on category management page TL-31870 Fixed the new message alert count always showing despite there being no new messages TL-31908 Removed absolute positioning from Engage Contribution data counter and supplied more useful CSS class names and HTML structure TL-31927 Fixed issue where deleting a manager on expired temporary manager assignment caused scheduled task to fail TL-31940 Fixed Tui editors not supporting aria label and description attributes TL-31944 Added form validation to prevent the creation of lesson activities that specify "no grade" and "completion requires grade" TL-31975 Fixed a regression where deleted company goals caused an error in "linked review goal participant" page TL-31989 Fixed notifications without title or subject potentially causing an error on notification page TL-31993 Fixed an issue where certification exception notifications would be sent multiple times TL-32009 Fixed competency upload to use current record as default values thus not overwriting the fields 'evidencecount' and 'proficiencyexpected' involuntarily. TL-32012 Fixed button inside a button on collapsible elements on manage notifications page TL-32018 Updated validate_param() function to ensure validation works with encoded characters TL-32020 Fixed the tenant specific footer not appearing on the login page for tenant members. TL-32026 Added a missing call to set_allow_xss() function in the report builder 'category' filter TL-32027 Fixed badly rendering Workspace Libraries containing a Playlist in IE11 TL-32050 Added user's field "suspended" into backup and restore step. Prior to this patch, when a user record was included in a backup file of the course. The field "suspended" was not included, which newly record of user that was created by restore will not set the value for field "suspended". This patch added the field "suspended" into account of backup and restore process, hence newly created user records from restore will populate the value of field "suspended" TL-32084 Fixed display of column and horizontal bar graphs when exporting to PDF in reports TL-32100 Fixed scheduled notifications being sent when resolver is disabled If notifications in the new centralised notification system were configured with "Before" or "After" schedules, and then the notification trigger was disabled, then the notifications were still being sent at the scheduled times. This fix prevents any notification from being sent if the notification trigger is disabled at the time it should be sent. Note that any notifications skipped in this way will not be sent later if the notification trigger is re-enabled. TL-32154 Fixed user's full name being unintentionally encoded in LTI module requests TL-32157 Fixed SQL query in recent learning block that caused the dashboard to crash TL-32169 Fixed overbooking of seminar events when playing the seminar lottery more than once TL-32170 Removed incorrect escaping of URL in the template for 'Related pages' admin block TL-32171 Ensured the language string identifiers are in lower case for the CAS authentication type TL-32231 Removed unused joins in the sql of customfield dataholders for the Torara Catalog TL-32259 Fixed issue in the start_sheet() function of spout_base Spout library that caused issues creating .CSV downloads API changes: TL-31979 Removed SidePanelCommentBox.interactor The SidePanelCommentBox.interactor was introduced in the previous release but breaks backward compatibility. Any code that has depended on the prop since 13.11 or 14.3 will be required to use :showComment="interactor.can_comment" instead. Tui front end framework: TL-31171 Allowed returning new value from produce() in tui/immutable TL-31977 TagList component emits open event TL-32112 Updated styling of loading button TL-32192 TagList component has optional "accessible-name" prop The TagList component now accepts an optional "accessible-name" property that can be used to override the default name used in the dropdown's aria-label. Contributions: * Michael Geering at Kineo UK - TL-32157 * Mihail Geshoski at Moodle - TL-31884 * Stewart Fulton at Kineo Pacific - TL-31762
Release 13.12 (22nd September 2021):
Important: TL-32183 Fixed an issue with user profile fields not being imported in HR import when using field mapping This is an issue with user profile fields being imported via HR Import and only effects sites where the profile fields are using field mapping in the import configuration. If the user element configuration is using 'Empty fields erase existing data' this may result in existing profile field data being deleted. Security issues: TL-31887 Fixed potential blind Server-side request forgery (SSRF) against cURL blocked hosts via redirect All cURL redirect requests are now performed at the PHP level instead of relying on native cURL functionality to prevent blind Server-side request forgery (SSRF) TL-32429 Removed ability of site administrators to read arbitrary files via TeX preamble Previously, if all of the relevant TeX packages were installed and configured, a site administrator could read arbitrary files readable by the HTTP server system account via TeX, preamble. This included reading the config.php file and recovering the database credentials, listing system accounts and gaining access to user-uploaded content which posed a risk to shared hosting environments. TL-32430 Fixed a PHP type juggling vulnerability in external DB authentication Prior to this fix, a PHP type juggling vulnerability caused by loosely typed comparison could result in authentication bypass for users with password hash starting with "0e" on sites using the "External database" authentication plugin. Performance improvements: TL-30416 Improved the performance of IE11 devtools by moving CSS Variable rules onto a dedicated root DOM Node TL-31570 Delegated the re-grading of final grades of enrolled users within courses when adding a new course module. Prior to this patch, when a course had a large number of enrolled users and associated grade records, it would take a long time to add a course module that has grading enabled. This was due to the re-grading of final grades occurring immediately when a new course module was added. With this patch, a new adhoc task is introduced which defers the re-grading functionality into cron. The re-grading task will be deferred to cron, every time when a new course module (activity) that enable grading functionality was added to the course. A course creator, or site administrator will be able to see the notification banner when viewing the course that has the re-grading cron task pending. When the cron runs and all the grade records get processed, the notification banner will not appear again. TL-31762 Improved the performance of the totara_icon_url_and_alt function This function is used, amongst other places, for the display of 'Multi select' course custom fields. This change will improve the performance of report builder where these fields have been used. TL-31863 Improved the performance of session's room selection dialog Improvements: TL-29566 Added evidence type custom fields to evidence reports It is now possible to view and export custom field data on evidence reports. TL-30099 Improved accessibility of block show/hide buttons TL-30101 Improved accessibility of mobile view main navigation TL-30102 Improved accessibility of the action menus when expanded/collapsed TL-30103 Improved accessibility of close button in yui dialogs TL-30173 Improved accessibility of managing selected tiles in content marketplace explorer TL-30177 Improved accessibility of close button in content marketplace cards TL-31403 Created a 'program assigned' column for the deprecated 'mandatory' column in the learning plans (program) report source Investigation showed that the 'Mandatory' column is only an indication whether the user is still assigned to a program that he previously completed. This column has now been deprecated and a replacement column 'program assigned' created to reflect the correct meaning. TL-31438 Created accessible HTML version of certificate activity PDF In the certificate course module a user can now access a HTML version of the certificate alongside the existing PDF version. This is to provide an accessible version of the certificate as the PDF is not currently accessible. If the certificate is sent via email to the user the user will be able to access the HTML version from the email via a link. TL-31447 Added CLI script for changing program start and completion times The course completion editor allows administrators to change the date and time when an enrolled user completed a course to a date in the future. If this course is then later included in a program and the user assigned to the program, the resulting program completion record may indicate that the user started and completed the program in the future. As the program completion editor does not allow changes to the program start datetime administrators have no easy way to fully correct their data. The provided new script (totara/program/cli/update_program_completion_start_end.php) allows administrators to manually change program start and completion datetimes for assigned users. Note: this script allows administrators to update multiple program completion records in a single run. It should therefore be used with care. TL-31682 ALLOWED_VALUES constraint in install.xml files allows uppercase letters TL-31800 Added more user fields for web service create and update functions \core_user_external::create_users() and \core_user_external::update_users() can now accept more user profile fields so user creation/update via web service can now be very similar to the edit profile page's functionality. The new fields that have been added are: * maildisplay * interests * url * skype * institution * department * phone1 * phone2 * address TL-31875 Upgraded postcss library to version 7.0.36 TL-31930 Removed admin buttons and headings on pages when viewed within MS Teams TL-31934 Added logout to configuration tab in MS Teams and hid unwanted headings and configuration options TL-32081 Removed attendee date conflict check when copying seminar event TL-32284 Reworded seminar notifications help text Previously the session booking and session date changed reminder recipients had the wording "All events(past, ...)". However, these notifications never go out for past events. This ticket removed the word "past"; the new wording makes it clear that notifications only go out for current and future events. Bug fixes: TL-31586 Fixed a race condition where the contribute resource card in a workspace would sometimes not be displayed TL-31603 Fixed the competency bar graph to have a label for each item associated, removing any empty labels at the beginning and the end TL-31639 Fixed triggering a user_suspended event when suspending a user during upload TL-31652 Fixed the room link in seminar notifications not displaying the correct room status TL-31664 Ensured that the sub-menu is shown when viewing all of the 'Your Library' pages TL-31709 Fixed multiple event popovers showing at the same time TL-31722 Fixed theme field in totara_tui_themes_with_variables GraphQL query to use a consistent type TL-31726 Required checkbox profile fields are treated the same as other custom profile fields when a user logs in When a new required checkbox custom profile field was added, users who existed before and after the field was created were treated differently. Users who existed before the field would be required to check the checkbox when next logging in. Users created afterwards or who had the checkbox cleared by an admin would not be prompted on login. With this patch in place, a required unchecked checkbox is treated like the other custom profile fields and users will be prompted to check it when they log in. TL-31779 Fixed an issue where a user using a URL resource within MS Teams would result in the wrong theme being displayed TL-31795 Fixed an error where hidden courses were appearing in the "Recommended For You" block Prior to this patch if a course was marked as hidden but had self-enrollment enabled, it may have been recommended to users through the "Recommended for you" block. With this patch in place only courses that a user is allowed to see and enrol in will be recommended. TL-31802 Fixed use of incorrect caret direction icon on category management page TL-31870 Fixed the new message alert count always showing despite there being no new messages TL-31908 Removed absolute positioning from Engage Contribution data counter and supplied more useful CSS class names and HTML structure TL-31927 Fixed issue where deleting a manager on expired temporary manager assignment caused scheduled task to fail TL-31944 Added form validation to prevent the creation of lesson activities that specify "no grade" and "completion requires grade" TL-32009 Fixed competency upload to use current record as default values thus not overwriting the fields 'evidencecount' and 'proficiencyexpected' involuntarily. TL-32018 Updated validate_param() function to ensure validation works with encoded characters TL-32020 Fixed the tenant specific footer not appearing on the login page for tenant members. TL-32026 Added a missing call to set_allow_xss() function in the report builder 'category' filter TL-32027 Fixed badly rendering Workspace Libraries containing a Playlist in IE11 TL-32050 Added user's field "suspended" into backup and restore step. Prior to this patch, when a user record was included in a backup file of the course. The field "suspended" was not included, which newly record of user that was created by restore will not set the value for field "suspended". This patch added the field "suspended" into account of backup and restore process, hence newly created user records from restore will populate the value of field "suspended" TL-32084 Fixed display of column and horizontal bar graphs when exporting to PDF in reports TL-32154 Fixed user's full name being unintentionally encoded in LTI module requests TL-32157 Fixed SQL query in recent learning block that caused the dashboard to crash TL-32169 Fixed overbooking of seminar events when playing the seminar lottery more than once TL-32170 Removed incorrect escaping of URL in the template for 'Related pages' admin block TL-32171 Ensured the language string identifiers are in lower case for the CAS authentication type TL-32231 Removed unused joins in the sql of customfield dataholders for the Torara Catalog API changes: TL-31979 Removed SidePanelCommentBox.interactor The SidePanelCommentBox.interactor was introduced in the previous release but breaks backward compatibility. Any code that has depended on the prop since 13.11 or 14.3 will be required to use :showComment="interactor.can_comment" instead. Contributions: * Michael Geering at Kineo UK - TL-32157 * Stewart Fulton at Kineo Pacific - TL-31762
Release 12.35 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. TL-31887 Fixed potential blind Server-side request forgery (SSRF) against cURL blocked hosts via redirect All cURL redirect requests are now performed at the PHP level instead of relying on native cURL functionality to prevent blind Server-side request forgery (SSRF) TL-32429 Removed ability of site administrators to read arbitrary files via TeX preamble Previously, if all of the relevant TeX packages were installed and configured, a site administrator could read arbitrary files readable by the HTTP server system account via TeX, preamble. This included reading the config.php file and recovering the database credentials, listing system accounts and gaining access to user-uploaded content which posed a risk to shared hosting environments. TL-32430 Fixed a PHP type juggling vulnerability in external DB authentication Prior to this fix, a PHP type juggling vulnerability caused by loosely typed comparison could result in authentication bypass for users with password hash starting with "0e" on sites using the "External database" authentication plugin. Performance improvements: TL-31570 Delegated the re-grading of final grades of enrolled users within courses when adding a new course module. Prior to this patch, when a course had a large number of enrolled users and associated grade records, it would take a long time to add a course module that has grading enabled. This was due to the re-grading of final grades occurring immediately when a new course module was added. With this patch, a new adhoc task is introduced which defers the re-grading functionality into cron. The re-grading task will be deferred to cron, every time when a new course module (activity) that enable grading functionality was added to the course. A course creator, or site administrator will be able to see the notification banner when viewing the course that has the re-grading cron task pending. When the cron runs and all the grade records get processed, the notification banner will not appear again. TL-31762 Improved the performance of the totara_icon_url_and_alt function This function is used, amongst other places, for the display of 'Multi select' course custom fields. This change will improve the performance of report builder where these fields have been used. Improvements: TL-31403 Created a 'program assigned' column for the deprecated 'mandatory' column in the learning plans (program) report source Investigation showed that the 'Mandatory' column is only an indication whether the user is still assigned to a program that he previously completed. This column has now been deprecated and a replacement column 'program assigned' created to reflect the correct meaning. TL-31438 Created accessible HTML version of certificate activity PDF In the certificate course module a user can now access a HTML version of the certificate alongside the existing PDF version. This is to provide an accessible version of the certificate as the PDF is not currently accessible. If the certificate is sent via email to the user the user will be able to access the HTML version from the email via a link. TL-31447 Added CLI script for changing program start and completion times The course completion editor allows administrators to change the date and time when an enrolled user completed a course to a date in the future. If this course is then later included in a program and the user assigned to the program, the resulting program completion record may indicate that the user started and completed the program in the future. As the program completion editor does not allow changes to the program start datetime administrators have no easy way to fully correct their data. The provided new script (totara/program/cli/update_program_completion_start_end.php) allows administrators to manually change program start and completion datetimes for assigned users. Note: this script allows administrators to update multiple program completion records in a single run. It should therefore be used with care. TL-32284 Reworded seminar notifications help text Previously the session booking and session date changed reminder recipients had the wording "All events(past, ...)". However, these notifications never go out for past events. This ticket removed the word "past"; the new wording makes it clear that notifications only go out for current and future events. Bug fixes: TL-31639 Fixed triggering a user_suspended event when suspending a user during upload TL-31726 Required checkbox profile fields are treated the same as other custom profile fields when a user logs in When a new required checkbox custom profile field was added, users who existed before and after the field was created were treated differently. Users who existed before the field would be required to check the checkbox when next logging in. Users created afterwards or who had the checkbox cleared by an admin would not be prompted on login. With this patch in place, a required unchecked checkbox is treated like the other custom profile fields and users will be prompted to check it when they log in. TL-31927 Fixed issue where deleting a manager on expired temporary manager assignment caused scheduled task to fail TL-31944 Added form validation to prevent the creation of lesson activities that specify "no grade" and "completion requires grade" TL-32009 Fixed competency upload to use current record as default values thus not overwriting the fields 'evidencecount' and 'proficiencyexpected' involuntarily. TL-32050 Added user's field "suspended" into backup and restore step. Prior to this patch, when a user record was included in a backup file of the course. The field "suspended" was not included, which newly record of user that was created by restore will not set the value for field "suspended". This patch added the field "suspended" into account of backup and restore process, hence newly created user records from restore will populate the value of field "suspended" TL-32169 Fixed overbooking of seminar events when playing the seminar lottery more than once TL-32171 Ensured the language string identifiers are in lower case for the CAS authentication type Contributions: * Mihail Geshoski at Moodle - TL-31884 * Stewart Fulton at Kineo Pacific - TL-31762
Release 11.44 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. TL-31887 Fixed potential blind Server-side request forgery (SSRF) against cURL blocked hosts via redirect All cURL redirect requests are now performed at the PHP level instead of relying on native cURL functionality to prevent blind Server-side request forgery (SSRF) TL-32429 Removed ability of site administrators to read arbitrary files via TeX preamble Previously, if all of the relevant TeX packages were installed and configured, a site administrator could read arbitrary files readable by the HTTP server system account via TeX, preamble. This included reading the config.php file and recovering the database credentials, listing system accounts and gaining access to user-uploaded content which posed a risk to shared hosting environments. TL-32430 Fixed a PHP type juggling vulnerability in external DB authentication Prior to this fix, a PHP type juggling vulnerability caused by loosely typed comparison could result in authentication bypass for users with password hash starting with "0e" on sites using the "External database" authentication plugin. Improvements: TL-31438 Created accessible HTML version of certificate activity PDF In the certificate course module a user can now access a HTML version of the certificate alongside the existing PDF version. This is to provide an accessible version of the certificate as the PDF is not currently accessible. If the certificate is sent via email to the user the user will be able to access the HTML version from the email via a link. TL-31447 Added CLI script for changing program start and completion times The course completion editor allows administrators to change the date and time when an enrolled user completed a course to a date in the future. If this course is then later included in a program and the user assigned to the program, the resulting program completion record may indicate that the user started and completed the program in the future. As the program completion editor does not allow changes to the program start datetime administrators have no easy way to fully correct their data. The provided new script (totara/program/cli/update_program_completion_start_end.php) allows administrators to manually change program start and completion datetimes for assigned users. Note: this script allows administrators to update multiple program completion records in a single run. It should therefore be used with care. Bug fixes: TL-31639 Fixed triggering a user_suspended event when suspending a user during upload TL-31927 Fixed issue where deleting a manager on expired temporary manager assignment caused scheduled task to fail TL-32050 Added user's field "suspended" into backup and restore step. Prior to this patch, when a user record was included in a backup file of the course. The field "suspended" was not included, which newly record of user that was created by restore will not set the value for field "suspended". This patch added the field "suspended" into account of backup and restore process, hence newly created user records from restore will populate the value of field "suspended" Contributions: * Mihail Geshoski at Moodle - TL-31884
Release 10.48 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. TL-31887 Fixed potential blind Server-side request forgery (SSRF) against cURL blocked hosts via redirect All cURL redirect requests are now performed at the PHP level instead of relying on native cURL functionality to prevent blind Server-side request forgery (SSRF) TL-32429 Removed ability of site administrators to read arbitrary files via TeX preamble Previously, if all of the relevant TeX packages were installed and configured, a site administrator could read arbitrary files readable by the HTTP server system account via TeX, preamble. This included reading the config.php file and recovering the database credentials, listing system accounts and gaining access to user-uploaded content which posed a risk to shared hosting environments. TL-32430 Fixed a PHP type juggling vulnerability in external DB authentication Prior to this fix, a PHP type juggling vulnerability caused by loosely typed comparison could result in authentication bypass for users with password hash starting with "0e" on sites using the "External database" authentication plugin. Bug fixes: TL-31927 Fixed issue where deleting a manager on expired temporary manager assignment caused scheduled task to fail Contributions: * Mihail Geshoski at Moodle - TL-31884
Release 9.57 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. TL-32429 Removed ability of site administrators to read arbitrary files via TeX preamble Previously, if all of the relevant TeX packages were installed and configured, a site administrator could read arbitrary files readable by the HTTP server system account via TeX, preamble. This included reading the config.php file and recovering the database credentials, listing system accounts and gaining access to user-uploaded content which posed a risk to shared hosting environments. TL-32430 Fixed a PHP type juggling vulnerability in external DB authentication Prior to this fix, a PHP type juggling vulnerability caused by loosely typed comparison could result in authentication bypass for users with password hash starting with "0e" on sites using the "External database" authentication plugin. Bug fixes: TL-31927 Fixed issue where deleting a manager on expired temporary manager assignment caused scheduled task to fail Contributions: * Mihail Geshoski at Moodle - TL-31884
Release 2.9.58 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. TL-32429 Removed ability of site administrators to read arbitrary files via TeX preamble Previously, if all of the relevant TeX packages were installed and configured, a site administrator could read arbitrary files readable by the HTTP server system account via TeX, preamble. This included reading the config.php file and recovering the database credentials, listing system accounts and gaining access to user-uploaded content which posed a risk to shared hosting environments. TL-32430 Fixed a PHP type juggling vulnerability in external DB authentication Prior to this fix, a PHP type juggling vulnerability caused by loosely typed comparison could result in authentication bypass for users with password hash starting with "0e" on sites using the "External database" authentication plugin. Contributions: * Mihail Geshoski at Moodle - TL-31884
Release 2.7.64 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. Contributions: * Mihail Geshoski at Moodle - TL-31884
Release 2.6.81 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. Contributions: * Mihail Geshoski at Moodle - TL-31884
Release 2.5.85 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. Contributions: * Mihail Geshoski at Moodle - TL-31884
Release 2.4.80 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. Contributions: * Mihail Geshoski at Moodle - TL-31884
Release 2.2.81 (22nd September 2021):
Security issues: TL-31884 Fixed potential SQL injection risks in enrollib.php Note that actual SQL injection is not currently possible in Totara as the vulnerable method is not accessible in a way that would make Totara vulnerable. This patch modifies an existing method to ensure SQL injection is prevented even if it were to be used incorrectly in future. Contributions: * Mihail Geshoski at Moodle - TL-31884